C# 发布到web服务-400错误

C# 发布到web服务-400错误,c#,web-services,C#,Web Services,我已经检查了stackoverflow的相关帖子,但它们没有帮助我解决问题 我无法将数据发布到客户的web服务。我无法判断这是代码缺陷还是服务器端的某个问题。我们得到的响应是httpWebException,消息为“服务器返回了错误(400)错误请求”,httpWebException状态的值为ProtocolError 有效负载是一块XML,请求ContentType为“text/XML;encoding='utf-8'”。它也被描述为一个RESTfulWeb服务 这里是实际的C#代码,以防提

我已经检查了stackoverflow的相关帖子,但它们没有帮助我解决问题

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

有效负载是一块XML,请求ContentType为“text/XML;encoding='utf-8'”。它也被描述为一个RESTfulWeb服务

这里是实际的C#代码,以防提供一些启发:

有人能提出问题的原因吗?例如,我是否未能在httprequest上设置一些附加属性?ContentType是否不适合发布?我应该补充一点,使用几乎相同的代码(除了方法设置为“POST”)从同一个web服务获取数据非常有效。只有在将XML发回web服务时,问题才会出现。(XML是文档化XML结构的副本,因此我认为问题不在于此。)


TIA

我们如何判断端点在这里做什么?您可以像
request.ContentType=“application/xml”这样尝试吗;request.Accept=“application/xml”。我现在已经尝试了这个改变-遗憾的是没有任何改进。我不知道web服务在做什么,这是我的问题的一半。我不知道我的代码是有缺陷还是web服务有缺陷。我还要求客户尝试在服务器端捕获http请求,并告诉我他们的web服务不喜欢它的哪些方面,但到目前为止没有成功。我希望我的代码中有错误或遗漏的地方,因为这对我来说是一个简单的解决方案。经过长期的努力,结果证明我们给出的XML定义是错误的,所以提交的XML是错误的。
        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;
    }