2017-08-03 7 views
2

Rune MadsonとDaniel ShiffmanのHTTP-Request-for-Processingクラスを使用して、サイトOAuthで使用するGetRequestとPostRequestを処理しています。処理のHTTPリクエストクラスの証明書を認証するにはどうすればいいですか

私は右のURLを入力してパラメータを処理する:

GetRequest req = new GetRequest("https://www.afakesite.com/oauth2/token"); 
req.addHeader("grant_type","authorization_code"); 
req.addHeader("client_id",ID); 
req.addHeader("client_secret",fancyClientSecret); 
req.addHeader("code",authorizationCode); 
req.send(); 

が、私はこれらのエラーで迎えています:

javax.net.ssl.SSLPeerUnverifiedException: peer not authenticated 

私も処理方法を使用してみました:

loadJSONObject("https://www.afakesite.com/oauth2/token?grant_type=authorization_code&client_id=...") 

witho with successfully with私はサイトがデータを返すことを知っているので、私は上記のエラーをutしかし、私はまた、PostRequestクラスを使用してサイトにファイルを提出したい。このコマンドは、サイトが提供するJSONファイルを添付して400エラーを返しますが、代わりに破棄して例外を表示します。


は、どのように私は、処理中にこの要求を認証に取り掛かるべきで、それが可能か、あまりにも複雑ではない場合、どのように私はこのサイトにファイルを送信して行く必要があります。

私が認証しようとしているサイトは、その情報が何らかの形で役に立つならばDeviantArtです。

+0

は、あなたはそれがライブラリを使用せずに作業を取得することができます「してみてください」ブロックで包むことにより回避することができるでMalformedURLExceptionのコードをコンパイルしません。 、単に標準の 'HttpsUrlConnection' Javaクラスを使用していますか? –

+0

@KevinWorkmanありがたいことにHttpsUrlConnectionはエラーなく動作し、正しく解析します。私は実際に実際にチュートリアルを見つけることができませんでしたが、私はURLとしてすべてをエンコードしてloadJSONObjectに押し込むことができます。 – CrazyInfin8

答えて

2

私はライブラリなしで何かをしようとすることをお勧めします。 Java APIHttpsUrlConnectionをそのまま使用できます。

import javax.net.ssl.HttpsURLConnection; 
import java.io.OutputStreamWriter; 
import java.net.URL; 

HttpsURLConnection connection = (HttpsURLConnection) new URL("https://example.com").openConnection(); 
connection.setRequestMethod("POST"); 
connection.setDoOutput(true); 

OutputStreamWriter writer = new OutputStreamWriter(connection.getOutputStream()); 
writer.write("param1=Data for param1"); 
writer.write("&param2=Data for param2"); //Ampersand is necessary for more than one parameter 
writer.write("&param3=Data for param3"); 
writer.flush(); 

int responseCode = connection.getResponseCode(); 
if(responseCode == 200){ 
    System.out.println("POST was successful!"); 
} 
else{ 
    System.out.println("Error: " + responseCode); 
} 

恥知らずな自己宣伝:here利用できる(指定認証を含む)、さらにいくつかの例があります

は、ここでURLへの投稿、一部のデータがあることはほとんど例です。

あなたがこの作業をすることができれば、あなたはそれがライブラリそのものとうわべいものであることを知っています。正直なところ、あなた自身で投稿をやっているだけで、コードの行数はあまり多くないので、おそらくライブラリを完全に削除することができます。


EDIT処理があるため すなわち

try { 
    HttpsURLConnection connection = (HttpsURLConnection) new URL("https://example.com").openConnection(); 
    //so on and so forth... 
} catch(Exception e) {} 
関連する問題