【问题标题】:HTTP 400 bad request when using POST使用 POST 时的 HTTP 400 错误请求
【发布时间】:2015-12-26 11:38:33
【问题描述】:

当我使用 RestSharp PCL 发布一些 JSON 时,我得到了 HTTP 400。 当我发送一个字符串时,似乎包含了\"。它不应该。这可能是 POST 不起作用的原因。

我可能遗漏了一些我需要填写的内容,但请帮助我了解我遗漏的内容。

这是我正在使用的代码

public async Task<bool> DoPost<T>(string endPoint, T content) where T : class
{
    var body = JsonConvert.SerializeObject(content);
    var request = new RestRequest(endPoint, Method.POST);
    request.AddParameter("application/json", body, ParameterType.RequestBody);
    try
    {
        var response = await _client.Execute(request, _cancellationToken.Token);
        if (response.IsSuccess)
        {
            return true;
        }
    }
    catch (Exception e)
    {
        throw new GTSWebServiceException(e.Message, e);
    }

    return false;
}

【问题讨论】:

    标签: xamarin xamarin.android portable-class-library restsharp


    【解决方案1】:

    您是否检查过:How to POST request using RestSharp 我知道您在第一个参数中包含了内容类型,但也许您可以使用 RequestFormat?我怀疑这是必要的。另外,您是否检查过您的字符串是否确实包含转义字符,例如双引号?如果您还看到字符串上的斜线,是否也是因为您正在调试它?您在通过服务器返回错误请求的有效负载中收到什么?

    【讨论】:

    • Restsharp 便携版虽然没有 requestformat。服务器包括双引号。当我取回字符串时,它会给我一个带引号的字符串。
    • 你试过这个吗:stackoverflow.com/questions/13833900/… 我假设你有一个 WebAPI 后端
    • 它是否仅在字符串上失败,因为也许您正在尝试将格式不正确的内容转换为 json,即:您有一个没有键值对格式的字符串?
    • 是的,后端部分没有收到 json,而是在该部分收到了一个字符串。但总的来说,当我以同样的方式传递一个 json 时。我仍然得到一个错误,(另一个休息电话)。 (这就是我所要求的)。
    • 你见过这个吗? stackoverflow.com/questions/33508073/… 。他们建议添加“内容长度”或使用 AddJsonBody 方法(如果可用)
    猜你喜欢
    • 1970-01-01
    • 2019-05-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-06-29
    • 1970-01-01
    • 2016-03-14
    相关资源
    最近更新 更多