【问题标题】:Unirest Java POST request for Intercom API return error 500对讲 API 的 Unirest Java POST 请求返回错误 500
【发布时间】:2020-06-04 14:26:23
【问题描述】:

我目前正在尝试使用 unirestIntercom API 进行 POST 请求,它会返回服务器错误 500,但是当我使用 Postman 执行相同的请求时,它会返回我想要的结果。

示例代码:

Map<String, String> headers = new HashMap<>();
headers.put("Accept", "application/json");
headers.put("Content-Type", "application/json");
headers.put("Authorization", "Bearer XXXXXXXXXXXXXXXXXXXXXXX");

HttpResponse response = Unirest
              .post("https://api.intercom.io/conversations/search")
              .headers(headers)
              .body(requestBody)
              .asObject(HashMap.class);

这是我的请求正文

private Map<String, Object> getQueryValues(String field, String operator, Object value) {
    Map<String, Object> map = new HashMap<>();
    map.put("field", field);
    map.put("operator", operator);
    map.put("value", value);

    return map;
}

private Map<String, Object> getRequestBody() {
    List<Map<String, Object>> value = new ArrayList<>();
    value.add(getQueryValues("updated_at", ">", 1590278400));
    value.add(getQueryValues("source.delivered_as", "=", "admin_initiated"));

    Map<String, Object> query = new HashMap<>();
    query.put("operator", "AND");
    query.put("value", value);

    Map<String, Object> requestBody = new HashMap<>();
    requestBody.put("query", query);

    return requestBody;
}

【问题讨论】:

  • 如果你在收到错误 500 时打印出正文,你会得到什么?
  • @libanbn 这个{ "query": { "operator": "AND", "value": [ { "field": "updated_at", "operator": ">", "value ": 1590278400 }, { "field": "source.delivered_as", "operator": "=", "value": "admin_initiated" } ] } }

标签: java unirest intercom


【解决方案1】:

问题原来是我的 UNIX 日期长值,其中正确的值应该是 Epoch 秒。所以从myDate.getTime()我把它改成了myDate.toInstant().getEpochSecond()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-04-24
    • 1970-01-01
    • 2017-12-13
    • 2022-07-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多