发布到网络服务 - 400错误

时间:2015-06-12 09:43:17

标签: c# web-services

我已经检查了stackoverflow上的相关帖子,但是他们没有帮我解决问题。

我无法将数据发布到客户的网络服务。我不知道这是代码缺陷还是服务器端的某些问题。我们得到的响应是一个httpWebException,消息“服务器返回错误(400)错误请求”,httpWebException状态的值为ProtocolError。

有效负载是XML的一部分,请求ContentType是“text / xml; encoding ='utf-8'”。它也被描述为RESTful Web服务。

这里,如果它提供一些照明,是实际的C#代码:

        XDocument xmlResponse = null;
        //Post the xml to the web service
        HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
        try
        {
        byte[] bytes = System.Text.Encoding.ASCII.GetBytes(xmlRecord.ToString());
        request.Method = "POST";
        request.ContentType = "text/xml; encoding='utf-8'";
        request.ContentLength = bytes.Length;
        using (var stream = request.GetRequestStream())
        {
            stream.Write(bytes, 0, bytes.Length);
        }
        //retrieve the response from the web service
        Trace.Log("Examining web service response");
        using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
        {
            if (response.StatusCode == HttpStatusCode.OK)
            {
                using (Stream responseStream = response.GetResponseStream())
                {
                    string responseStr = new StreamReader(responseStream).ReadToEnd();
                    xmlResponse = XDocument.Parse(responseStr);
                }
            }
        }
    }
    catch (WebException wex)
    {
        var m = wex.Message;
        throw wex;
    }

任何人都可以提出导致问题的原因吗?例如,我是否未能在httprequest上设置一些额外的属性? ContentType不适合发布吗?我应该添加从同一个Web服务获取数据,使用几乎相同的代码(除了方法设置为“POST”)完美地工作。只有在将XML发布回Web服务时才会出现此问题。 (XML是文档化XML结构的副本,因此我认为问题不在于此。)

TIA

0 个答案:

没有答案