C#的泽西客户端

时间:2012-04-26 16:57:55

标签: c# xml web-services client jersey

我有一个Jersey Web服务,其客户端在C#中。在片段之后。

var request =(HttpWebRequest)WebRequest.Create(uri);
        request.Method = "POST";
        request.ContentType = "application/xml";
        Stream stream = request.GetRequestStream();
        byte[] b = memstreamxml.ToArray();
        stream.Write(b, 0, b.Length);
        stream.Close();
        var response = (HttpWebResponse)request.GetResponse();

这个请求以xml字节发布,我得到400或415错误响应。我试过@Consumes各种MediaTypes,目前都没有工作。有人能告诉我如何将C#的xml请求发送到泽西网络服务吗?我也使用@XmlRootElement和我的pojo来处理输入xml。

提前感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

当请求contentType是“application / x-www-form-urlencoded”和jersey webservice @Consumes APPLICATION_FORM_URLENCODED时,我得到了它。事实上,contentType没有问题,但无法按照webresource的预期将Marshall xml输入到POJO对象中。因此,只要我将服务的参数类型修改为String,它就会开始工作。当然,除非有其他方法,否则你需要解析字符串xml来构建一个对象。