簡體   English   中英

將 curl 命令翻譯成 java

[英]translating curl command into java

我必須將 curl 命令: curl -X GET --header 'Accept: application/json' 'https://terminologies.gfbio.org/api/terminologies/'翻譯成 Z93F725A9.4423D21CF48B 我想將這個 http 請求發送到指定地址。 然后將響應存儲到 java 中的字符串中,你能告訴我翻譯嗎?

您可以使用普通的 JAVA 將其歸檔而無需額外的庫。 對於 JAVA 版本 v11+,我更喜歡@MarcoLucidi 建議的方法。

 String content="";
 System.setProperty("https.protocols", "TLSv1,TLSv1.1,TLSv1.2");

 URL url = new URL("https://terminologies.gfbio.org/api/terminologies/");
 HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
 urlConnection.setRequestProperty("accept", "application/json");
 
 BufferedReader in = new BufferedReader(
 new InputStreamReader(urlConnection.getInputStream()));

 String inputLine;
 while ((inputLine = in.readLine()) != null)
     content+=inputLine;
 in.close();
 
 System.out.println(content);

如果您至少使用 java 11,則可以使用新內置的 http 客戶端 例如:

import java.io.IOException;
import java.net.URI;
import java.net.http.*;
import java.net.http.HttpResponse.BodyHandlers;

public class HttpExample
{
        public static void main(String[] args)
        {
                HttpClient client = HttpClient.newHttpClient();
                HttpRequest req = HttpRequest
                        .newBuilder()
                        .uri(URI.create("https://terminologies.gfbio.org/api/terminologies/"))
                        .header("Accept", "application/json")
                        .build();
                try {
                        HttpResponse<String> resp = client.send(req, BodyHandlers.ofString());
                        String body = resp.body();
                        System.out.println(body);

                } catch (IOException | InterruptedException e) {
                        e.printStackTrace();
                }
        }
}

$ javac HttpExample.java
$ java HttpExample

{
    "request":{
        "query":"http://terminologies.gfbio.org/api/terminologies/",
        "executionTime":"Sun Jun 28 05:00:03 CEST 2020"
    },
    "results":[
        {
            "name":"Biological Collections Ontology",
            "acronym":"BCO",
...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM