Я знаю, что есть несколько постов с вопросом об ошибке 400, и я думаю, что прочитал их все, но я думаю, что проблема, с которой я сталкиваюсь, другая.
Этомой контракт на обслуживание WCF
[WebInvoke(UriTemplate = "/cust_key/{key}/prod_id/{id}",
Method = "POST",
BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Xml,
ResponseFormat = WebMessageFormat.Xml)]
Stream GetData(string key, string id, string data);
И это код, который я использую для отправки запроса на мой отдых SVC
request.RequestUri =
new Uri("http://localhost:3138/v1/cust_key/company1/prod_id/testProductID");
request.ContentType = "application/xml";
request.HttpMethod = "POST";
string xml =
@"<Product><name>dell 400</name><price>400 dollars</price></Product>";
byte[] message = Encoding.ASCII.GetBytes(xml);
string data = Convert.ToBase64String(message);
response = request.MakeWebRequest(null, data);
Это дало мнеОшибка 400 неверный запрос.Я попытался изменить строку XML на следующие два, и они также выдают ошибку 400
<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">
<![CDATA[<Product><name>dell 400</name><price>400 dollars</price></Product>]]>
</string>
или
<![CDATA[<Product><name>dell 400</name><price>400 dollars</price></Product>]]>
Если xml полезной нагрузки является пустой строкой, то все в порядкеи 200 возвращается.Кто-нибудь может мне помочь?
Редактировать: мой раздел web.config.он поставляется из коробки из шаблона службы REST WCF 40 (CS)
<system.serviceModel>
<serviceHostingEnvironment aspNetCompatibilityEnabled="true"/>
<standardEndpoints>
<webHttpEndpoint>
<!--
Configure the WCF REST service base address via the global.asax.cs file and the default endpoint
via the attributes on the <standardEndpoint> element below
-->
<standardEndpoint name="" helpEnabled="true" automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
</standardEndpoints>