我正在嘗試使用API下載一些XBRL文件。爲了做到這一點,我需要做一個捲曲的請求,就像這樣:如何從Java中的curl get請求獲取文件?
curl -XGET http://distribution.virk.dk/offentliggoerelser --data-binary @query_regnskaber.json
的想法是,按照我的理解,認爲「@ query_regnskaber.json」是一個JSON文件/ JSON查詢,我需要發送我的請求,並作爲回報,我得到一個XBRL文件/一些數據。我正在使用Java與播放框架(雖然不專門使用播放框架,但也許有人知道一些播放功能來執行卷曲請求)。
這是我當前的代碼:
String jsonStr =
"{" +
"\"query\": {" +
"\"bool\": {" +
"\"must\": [" +
"{" +
"\"term\": {" +
"\"offentliggoerelse.dokumenter.dokumentMimeType\": \"application\"" +
"}" +
"}," +
"{" +
"\"term\": {" +
"\"offentliggoerelse.dokumenter.dokumentMimeType\": \"xml\"" +
"}" +
"}," +
"{" +
"\"range\": {" +
"\"offentliggoerelse.offentliggoerelsesTidspunkt\": {" +
"\"from\": \"2016-12-01\"" +
"}" +
"}" +
"}" +
"]," +
"\"must_not\": []," +
"\"should\": []" +
"}" +
"}," +
"\"size\": 1000" +
"}";
String urlStr = "http://distribution.virk.dk/offentliggoerelser";
JSONObject jsonObj = new JSONObject(jsonStr);
URL myURL = new URL(urlStr);
HttpURLConnection urlCon = (HttpURLConnection)myURL.openConnection();
urlCon.setRequestProperty("Content-Type", "application/json; charset=UTF-8");
urlCon.setRequestMethod("GET");
urlCon.setDoInput(true);
urlCon.setDoOutput(true);
urlCon.connect();
OutputStream os = urlCon.getOutputStream();
os.write(jsonObj.toString().getBytes("UTF-8"));
os.close();
BufferedReader br = new BufferedReader(new InputStreamReader((urlCon.getInputStream())));
String output;
System.out.println("Output from Server .... \n");
while ((output = br.readLine()) != null) {
System.out.println(output);
}
urlCon.disconnect();
不順心的事,我不知道是否是因爲一些失蹤的設置,我的代碼或兩者兼而有之。我在「urlCon.getInputStream()」調用中遇到了403錯誤。
我能找到的唯一文檔是丹麥文。它還提到它使用ElasticSearch,我假設它用於查找可在「http://distribution.virk.dk/offentliggoerelser/_search」上找到的特定XBRL文件。找到特定的XBRL文件是我想要做的。以防萬一,這裏是鏈接到API documentation。
我正在使用可以在我的代碼中的文檔中找到的示例json查詢。
謝謝你的幫助。
的json測試查詢:
{
"query": {
"bool": {
"must": [
{
"term": {
"offentliggoerelse.dokumenter.dokumentMimeType": "application"
}
},
{
"term": {
"offentliggoerelse.dokumenter.dokumentMimeType": "xml"
}
},
{
"range": {
"offentliggoerelse.offentliggoerelsesTidspunkt": {
"from": "2014-10-01"
}
}
}
],
"must_not": [],
"should": []
}
},
"size": 1000
}
如果您不允許訪問此資源,則會返回'403 Forbidden'。在JSON文檔中設置了憑據嗎? – rmuller
您是否嘗試過測試您的json請求?我建議使用郵遞員這樣的工具,並確保API調用按照預期使用json請求返回。 –
[http get request with body]的可能重複(http://stackoverflow.com/questions/27180431/http-get-request-with-body) – glee8e