0
У меня есть этот простой метод POST с использованием WCF и Xamarin. Формы. Я пробовал разные подходы к форматированию и отправке данных, а также настройку сети на стороне сервера, но я все еще получаю ошибку с неправильным запросом. Вот мой код на стороне клиента:statuscode 400 reasonphrase 'bad request' version 1.1
OrderContract order = new OrderContract
{
OrderID = "10550",
OrderDate = DateTime.Now.ToString(),
ShippedDate = DateTime.Now.ToString(),
ShipCountry = "india",
OrderTotal = "781"
};
HttpClient httpClient = new HttpClient();
var json = JsonConvert.SerializeObject(order);
var uri = new Uri(string.Format("http://ipaddress/Services/OrderService.svc/PlaceOrder"));
HttpContent httpContent = new StringContent(json);
httpContent.Headers.ContentType = new MediaTypeHeaderValue("application/json");
var result = await httpClient.PostAsync(uri, httpContent);
await DisplayAlert("", result.ToString(), "OK");
и мой код на стороне сервера:
[OperationContract]
[WebInvoke(UriTemplate = "/PlaceOrder",
BodyStyle = WebMessageBodyStyle.Bare,
RequestFormat = WebMessageFormat.Json,
ResponseFormat = WebMessageFormat.Json, Method = "POST")]
void PlaceOrder(OrderContract order);
и мой web.config:
<system.serviceModel>
<behaviors>
<serviceBehaviors>
<behavior>
<serviceMetadata httpGetEnabled="true" httpsGetEnabled="true"/>
<serviceDebug includeExceptionDetailInFaults="false"/>
</behavior>
</serviceBehaviors>
<endpointBehaviors>
<behavior name="web">
<webHttp/>
</behavior>
</endpointBehaviors>
</behaviors>
<service name="PortalRestService.OrderService">
<endpoint address="" behaviorConfiguration="web" binding="webHttpBinding" bindingConfiguration="" contract="PortalRestService.IOrderService" />
<endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
</service>
</services>
<serviceHostingEnvironment multipleSiteBindingsEnabled="true"/>
</system.serviceModel>
<system.webServer>
<modules runAllManagedModulesForAllRequests="true"/>
</system.webServer>