400BadRequestSendingxmlPayloadtoWCFRESTService我知道有几篇帖子问了400个错误,我相信我已经阅读了所有错误,但我认为我面临的问题是不同的。这是我的WCF服务合同[WebInvoke(UriTemplate="/cust_key/{key}/prod_id/{id}",Method="POST",BodyStyle=WebMessageBodyStyle.Bare,RequestFormat=WebMessageFormat.Xml,ResponseFormat=WebMessageFormat.Xml)]StreamGetData(字符串键、字符串ID、字符串数据);这是我用来将请求发送到我的restsvcrequest.RequestUri=newUri("http://localhost:3138/v1/cust_key/company1/prod_id/testProductID")的代码;request.ContentType="应用程序/xml";request.HttpMethod="POST";stringxml=@"dell400400";byte[]message=Encoding.ASCII.GetBytes(xml);字符串数据=Convert.ToBase64String(消息);response=request.MakeWebRequest(null,数据);这给了我一个400BadRequest错误。我尝试将xml字符串更改为以下两个,它们还会产生400错误或如果有效负载xml是空字符串,则一切正常,返回200。谁能帮帮我?编辑:我的web.config部分。它从WCFREST服务模板40(CS)开箱即用使用元素的第二个例子应该有效。如果您知道要接收的XML模式,您可以这样做:RequestFormat=WebMessageFormat.Xml,ResponseFormat=WebMessageFormat.Xml)]//几乎完全相同,除了String现在是方法中的ProductParametersStreamGetData(stringkey,stringid,Productdata);[DataContract(Namespace="")]publicclassProduct{[DataMember]publicstringname{get;放;}[DataMember]publicstringprice{get;放;然后在您的帖子中使用客户端代码,它应该可以正常工作。另一方面,如果你想让你的web服务动态接受不同的XML,这不是一个定义明确的数据契约,你可以使用XElement,像这样:所有内容,如果它对你有用并且你需要了解更多关于C#学习教程,希望大家多多关注—[WebInvoke(UriTemplate="/cust_key/{key}/prod_id/{id}",Method="POST",BodyStyle=WebMessageBodyStyle.Bare,RequestFormat=WebMessageFormat.Xml,ResponseFormat=WebMessageFormat.Xml)]//几乎完全相同,除了String现在是XElementStreamGetData(stringkey,stringid,XElementdata);如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
