【问题标题】:statuscode 400 reasonphrase 'bad request' version 1.1状态码 400 原因短语“错误请求”版本 1.1
【发布时间】:2017-06-17 16:54:47
【问题描述】:

我有这个使用 WCF 和 Xamarin 的简单 POST 方法。形式。我尝试了不同的格式化和发送数据的方法,以及服务器端的 Web 配置,但我仍然收到错误的请求错误。这是我在客户端的代码:

        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>

【问题讨论】:

    标签: c# wcf xamarin.forms


    【解决方案1】:

    请试试这个:

            var s = new JsonSerializerSettings { DateFormatHandling = DateFormatHandling.MicrosoftDateFormat };
            var jsonString = JsonConvert.SerializeObject(jsonObject,s);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2017-07-21
      • 2017-08-10
      • 1970-01-01
      • 2015-11-28
      • 2020-10-21
      • 2019-09-13
      • 2017-09-07
      相关资源
      最近更新 更多