StatusCode:BadRequest - 使用RestSharp调用RestAPI时

时间:2016-09-25 07:55:59

标签: c# .net json rest restful-url

我正在调用RestAPI并以json格式发送数据。使用RestSharp作为客户端。

有以下功能。请仔细看看。

public HttpStatusCode  CreatOrder(OrderRequest order,string token)
{
    var client = new RestClient("this is url of api");
    request.AddHeader("Authorization", token);
    var json = JsonConvert.SerializeObject(order); //using Json.Net 
    request.AddJsonBody(order);
    request.Method = Method.POST;
    request.AddHeader("Content-Type", "application/json; charset=utf-8");
    var response = client.Execute(request);
    return response.StatusCode;
}

我可以在调试过程中看到关注json。

"{\"waypoints\":[{\"exactLatLng\":[{\"lat\":123.0,\"lng\":234.0}],\"premise\":null,\"houseNumber\":null,\"street\":null,\"subLocality\":null,\"locality\":null,\"city\":null,\"district\":null,\"province\":null,\"country\":null,\"postalCode\":null,\"countryCode\":null,\"poiName\":null,\"placeLatLng\":[{\"lat\":123.0,\"lng\":234.0}]}],\"extraOptions\":null,\"client\":{\"clientId\":null,\"name\":\"NumanTest\",\"phone\":\"1213123\",\"imageUrl\":null},\"name\":\"NumanTest\",\"notes\":null,\"unitOfLength\":[],\"tripDistance\":null,\"tripDuration\":null,\"pickupTime\":null,\"numberOfSeats\":null,\"vehicleType\":[],\"tariffType\":[],\"paymentMethods\":[],\"prepaid\":null,\"tariffId\":null}"

但我总是得到错误的回应请求。

"StatusCode: BadRequest, Content-Type: application/json; charset=utf-8, Content-Length: 2325)"

你能帮我摆脱这个问题。

非常感谢。

1 个答案:

答案 0 :(得分:0)

您可能还必须在请求中添加Content-Type - 标头:

request.AddHeader("Content-Type", "application/json; charset=utf-8");

此外,您可以使用Fiddler等网络调试代理来查看发送给服务的实际http请求。