2017-01-18 3 views
1

httpsでAPIに接続する必要がありますが、承認が必要です。
私はログイン名とパスワードを持っていますが、httpsに転送する方法はわかりません。javaでHTTPSリクエストを承認するにはどうすればよいですか?

私は(別のSOポストから得た)次のコードを使用しようとしましたコード:

public class TestHTTPSRequest { 
public static void main(String[] args) throws Exception { 
    URLConnection connection = new URL("https://smartcat.ai/api/integration/v1/account").openConnection(); 

    InputStream is = connection.getInputStream(); 
    InputStreamReader reader = new InputStreamReader(is); 
    char[] buffer = new char[256]; 
    int rc; 

    StringBuilder sb = new StringBuilder(); 

    while ((rc = reader.read(buffer)) != -1) 
     sb.append(buffer, 0, rc); 

    reader.close(); 

    System.out.println(sb); 
} 
} 
+1

[この](http://stackoverflow.com/questions/3283234/http-basic-authentication-in-java-using-httpclient)あなたを助けるかもしれません。 –

+0

使用しようとしているAPIのドキュメントをお読みください。それは認可情報をどのように提供するかを説明するべきです。 (すべてのAPIでうまくいく解決策はありません...) –

+0

タンクがたくさんあります。ドキュメントの技術サポートを依頼する。私はそれが普遍的なものでなければならないと思ったので、あなたは多くの助けをした。 –

答えて

0

にHTTPClientを使用してみてください。 httpsのURLに簡単に接続できます。それはあなたがいくつかのセキュリティヘッダを必要とするセキュリティで保護されたURLがある場合

また、彼らはすることができ

1>認証トークンやCSRFのために他のトークン

2>あなたが必要とすることができるいくつかの他のトークン保護

0

ジャックジェイのリンクが助けました。よく私のために、以下の方法で作業:

public static void main(String[] args) { 

    try { 
     URL url = new URL ("https://.../......"); 
     String encoding = Base64.getEncoder().encodeToString(("login:password").getBytes()); 

     HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); 
     connection.setRequestMethod("GET"); 
     connection.setDoOutput(true); 
     connection.setRequestProperty ("Authorization", "Basic " + encoding); 
     InputStream content = (InputStream)connection.getInputStream(); 
     BufferedReader in = 
       new BufferedReader (new InputStreamReader (content)); 
     String line; 
     while ((line = in.readLine()) != null) { 
      System.out.println(line); 
     } 
    } catch(Exception e) { 
     e.printStackTrace(); 
    } 

} 
関連する問題