【问题标题】:OpenFigi API curl to java POSTOpenFigi API curl 到 java POST
【发布时间】:2017-08-25 19:24:12
【问题描述】:

我正在尝试将以下 curl 转换为 java,但出现错误 400

400 请求正文必须是一个数组。请求正文不是数组。

curl -v -X POST 'https://api.openfigi.com/v1/mapping'
--header '内容类型:文本/json'
--data '[{"idType":"ID_WERTPAPIER","idValue":"851399","exchCode":"US"}]'

public void r2() 抛出 MalformedURLException, IOException {

    //String str = "https://www.openfigi.com/search#!?marketSector=Comdty";
    String str = "https://api.openfigi.com/v1/mapping";
    URL url = new URL(str);

    HttpURLConnection conn = (HttpURLConnection) url.openConnection();
    conn.setDoOutput(true);
    conn.setRequestMethod("POST");
    conn.setRequestProperty("Content-Type", "text/json");

    String input = "'[{\"idType\":\"ID_WERTPAPIER\",\"idValue\":\"851399\",\"exchCode\":\"US\"}]'";
    OutputStream os = conn.getOutputStream();
    os.write(input.getBytes());
    os.flush();
    /*
    if (conn.getResponseCode() != HttpURLConnection.HTTP_CREATED) {
        throw new RuntimeException("Failed : HTTP error code : "
                + conn.getResponseCode());
    }*/

    BufferedReader br = new BufferedReader(new InputStreamReader(
            (conn.getInputStream())));

    String output;
    System.out.println("Output from Server .... \n");
    while ((output = br.readLine()) != null) {
        System.out.println(output);
    }

    conn.disconnect();
}

谢谢

【问题讨论】:

  • 如果您删除input 开头和结尾的' 字符,它应该可以工作。

标签: java curl


【解决方案1】:

删除input 开头和结尾的' 字符后,程序按预期工作。

String input = "[{\"idType\":\"ID_WERTPAPIER\",\"idValue\":\"851399\",\"exchCode\":\"US\"}]";
OutputStream os = conn.getOutputStream();
os.write(input.getBytes());
os.flush();

【讨论】:

    猜你喜欢
    • 2017-12-21
    • 1970-01-01
    • 1970-01-01
    • 2015-09-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-02-27
    相关资源
    最近更新 更多