400 Bad Request 使用邮递员复制的请求代码

Posted

技术标签:

【中文标题】400 Bad Request 使用邮递员复制的请求代码【英文标题】:400 Bad Request using postman copied request code 【发布时间】:2020-09-02 05:10:48 【问题描述】:

我已经从

获取了请求代码
OkHttpClient client = new OkHttpClient();

MediaType mediaType = MediaType.parse("application/json");
String json = String.format("'sex': %s,'age': %d,'evidence': []", gender, age);
RequestBody body = RequestBody.create(mediaType, json);
Request request = new Request.Builder()
        .url("https://api.infermedica.com/covid19/diagnosis")
        .post(body)
        .addHeader("Content-Type", "application/json")
        .addHeader("Accept", "*/*")
        .addHeader("App-Id", "XXXXXX")
        .addHeader("App-Key", "XXXXXXXXXXXXXXXXXXXXX")
        .addHeader("User-Agent", "PostmanRuntime/7.19.0")
        .addHeader("Accept", "*/*")
        .addHeader("Cache-Control", "no-cache")
        .addHeader("Postman-Token", "58fbac21-182b-41e0-bceb-0905d0605858,cd9580e6-f262-4440-ba33-b85877dd087c")
        .addHeader("Host", "api.infermedica.com")
        .addHeader("Accept-Encoding", "gzip, deflate")
        .addHeader("Content-Length", "56")
        .addHeader("Connection", "keep-alive")
        .addHeader("cache-control", "no-cache")
        .build();

com.squareup.okhttp.Response response = client.newCall(request).execute();

我正在尝试发帖请求。我已经在邮递员中成功运行了请求。我已经从邮递员那里复制了代码。但是当我在 java 中运行请求时,我得到一个 400 Bad Request。而且我不知道为什么,因为所有标题和正文都与邮递员完全相同。

【问题讨论】:

您是否尝试过不使用邮递员的所有标题?我认为不需要“Postman-Token”、“User-Agent”。可能你只需要“App-Id”和“App-Key”。 【参考方案1】:

您的输入中缺少 Sex 的引号

在这里确认https://developer.infermedica.com/docs/covid-19

curl "https://api.infermedica.com/covid19/diagnosis" \
  -X "POST" \
  -H "App-Id: XXXXXXXX" -H "App-Key: XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX" \
  -H "Content-Type: application/json" -d '
    "sex": "male",
    "age": 30,
    "evidence": []
'

【讨论】:

以上是关于400 Bad Request 使用邮递员复制的请求代码的主要内容,如果未能解决你的问题,请参考以下文章

为啥我使用 Azure Graph SDK 收到 400 Bad Request?

调用 HeadObject 操作时发生客户端错误 (400):Bad Request Completed 1 part(s) with ... file(s)

HTTP 400 Bad request 原因

使用 flask_socketio + flask + gunicorn + nginx 获得 502 bad gateway 和 400 bad request

nginx:400 Bad RequestThe plain HTTP request

400 Bad Request HTTP Response 使用 WCF POST 通过 JQuery