Intercom API的Unirest Java POST请求返回错误500

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Intercom API的Unirest Java POST请求返回错误500相关的知识,希望对你有一定的参考价值。

我目前正在尝试使用Java的Intercom APIunirest上执行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;

答案

问题原来是我的UNIX date long值,其中正确的值应该是Epoch秒。因此,我将其从myDate.getTime()更改为myDate.toInstant().getEpochSecond()

以上是关于Intercom API的Unirest Java POST请求返回错误500的主要内容,如果未能解决你的问题,请参考以下文章

Intercom.io API list/listBy/find 在响应正文中仅返回 50 个用户

如何使用 Maven 安装 unirest?

Unirest Java中的post请求导致302 http结果

Unirest轻量级的HTTP客户端库

Unirest轻量级的HTTP客户端库

使用 Gatsby 的 Intercom 插件集成 Intercom