簡體   English   中英

Java中的Curl oAuth等效項

[英]Curl oAuth equivalent in Java

我找不到在Java中重現以下curl OAuth身份驗證調用的方法:

curl 'https://id.herokuapp.com/oauth/token' -H 'Content-Type: application/x-www-form-urlencoded' -H 'Accept: application/json' -H 'Authorization: Basic AUTH_VALUE' -H 'Connection: keep-alive'  --data 'username=_USERNAME&password=_PASSWORD&grant_type=password&scope=read%20write&client_secret=_SECRET&client_id=_CLIENT_ID' --compressed

我不知道如何將--data值傳遞給調用。

如果使用標准的java.net.URL可以完成,但是語法相當繁瑣,建議您嘗試使用HTTP Components庫 您應該以如下形式結束:

final HttpUriRequest request = RequestBuilder.get()
        .setUri("https://id.herokuapp.com/oauth/token")
        .setHeader("Content-Type", "application/x-www-form-urlencoded")
        .setHeader("Accept", "application/json")
        .setHeader("Authorization", "Basic AUTH_VALUE")
        .addParameter("username", "_USERNAME")
        .addParameter("password", "_PASSWORD")
        .addParameter("grant_type", "password")
        .addParameter("scope", "read write")
        .addParameter("client_secret", "_SECRET")
        .addParameter("client_id", "_CLIENT_ID")
        .build();

final HttpClient client = HttpClientBuilder.create().build();
final HttpResponse response = client.execute(request);
final HttpEntity entity = response.getEntity();

System.out.println(EntityUtils.toString(entity)); // or whatever processing you need

如果使用HttpClientBuilder創建HttpClient,則開箱即可提供GZip / deflate和保持活動處理功能。

暫無
暫無

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

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