java curl get_如何从Java中的curl get请求获取文件?
我正在嘗試使用API??下載一些XBRL文件。為了做到這一點(diǎn),我需要做一個(gè)卷曲的請(qǐng)求,就像這樣:如何從Java中的curl get請(qǐng)求獲取文件?
curl -XGET http://distribution.virk.dk/offentliggoerelser --data-binary @query_regnskaber.json
的想法是,按照我的理解,認(rèn)為“@ query_regnskaber.json”是一個(gè)JSON文件/ JSON查詢,我需要發(fā)送我的請(qǐng)求,并作為回報(bào),我得到一個(gè)XBRL文件/一些數(shù)據(jù)。我正在使用Java與播放框架(雖然不專門使用播放框架,但也許有人知道一些播放功能來執(zhí)行卷曲請(qǐng)求)。
這是我當(dāng)前的代碼:
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();
不順心的事,我不知道是否是因?yàn)橐恍┦й櫟脑O(shè)置,我的代碼或兩者兼而有之。我在“urlCon.getInputStream()”調(diào)用中遇到了403錯(cuò)誤。
我能找到的唯一文檔是丹麥文。它還提到它使用ElasticSearch,我假設(shè)它用于查找可在“http://distribution.virk.dk/offentliggoerelser/_search”上找到的特定XBRL文件。找到特定的XBRL文件是我想要做的。以防萬一,這里是鏈接到API documentation。
我正在使用可以在我的代碼中的文檔中找到的示例json查詢。
謝謝你的幫助。
的json測(cè)試查詢:
{
"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
}
2016-12-15
Marcus
+1
如果您不允許訪問此資源,則會(huì)返回'403 Forbidden'。在JSON文檔中設(shè)置了憑據(jù)嗎? –
+0
您是否嘗試過測(cè)試您的json請(qǐng)求?我建議使用郵遞員這樣的工具,并確保API調(diào)用按照預(yù)期使用json請(qǐng)求返回。 –
+0
[http get request with body]的可能重復(fù)(http://stackoverflow.com/questions/27180431/http-get-request-with-body) –
總結(jié)
以上是生活随笔為你收集整理的java curl get_如何从Java中的curl get请求获取文件?的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Java对象容器——Hash表/散列表
- 下一篇: 几种存储器的主要应用