どのセッション機能を達成するために、モジュールがJavaでそれを要求したのpythonに似ています。Javaは、パッケージを達成することができokhttpのjavaで達成可能です。
pom.xmlに依存関係を追加します
<! - https://mvnrepository.com/artifact/com.squareup.okhttp3/okhttp - > <依存> <groupIdを> com.squareup.okhttp3 </ groupIdを> <たartifactId> okhttp </たartifactId> <バージョン> 4.2.2 </バージョン> </依存関係>
関連するJavaコードに続きます:
パッケージcom.puple.atto.datastructure。 輸入java.text.MessageFormatの。 輸入はjava.util.ArrayList; 輸入java.util.HashMapを; 輸入はjava.util.List; 輸入java.util.Set; 輸入のjava.util.regex *。; 輸入okhttp3.Cookie。 輸入okhttp3.CookieJar; 輸入okhttp3.FormBody; 輸入okhttp3.HttpUrl; 輸入okhttp3.OkHttpClient; 輸入okhttp3.Request; 輸入okhttp3.Response。 パブリッククラスセッション{ 。民間最終OkHttpClient mOkHttpClient =新しいOkHttpClient.Builder()をCookieJar(新しいCookieJarManager())(ビルド)。 // //もし直接書き込み通常の操作を介してをCookieJarインタフェースを実装せずに書かれsaveFromResponse loadForRequestれるクラス、しかし必要性をCookieJar型でcookieJsr方法Buliderクラスインスタンスので著しく、赤色IDEされるであろう。内部のアヒルのようなメソッドを書くことを知っているではないわかりやすさの可読性の人々のインターフェイス仕様上記のコラボレーションとして、数行のコードを保存するだけでダッククラスは、あまりにも自分自身の人に加えて、コードを記述します。 プライベートクラスCookieJarManagerは{をCookieJarを実装します 民間最終のHashMap <文字列、リスト<クッキー>>は、cookiestore =新しいHashMapの<>(); @Override 公共ボイドsaveFromResponse(HttpUrl URL、リスト<クッキー>クッキー){ cookieStore.put(url.host()、クッキー); } @Override パブリックリスト<クッキー> loadForRequest(HttpUrl URL){ リスト<クッキー>クッキー= cookieStore.get(url.host())。 クッキーを返す!= nullの?クッキー:新規のArrayList <クッキー>(){}。 } } パブリック文字列のポスト(文字列のURL、HashMapの<文字列、文字列> / ** * @paramのURL要请求的URL * @param paramsMapポスト的请求参数 * @returnポスト的返回结果 * / FormBody.Builder formBodyBuilder =新しいFormBody.Builder(); 設定の<string>のkeySet = paramsMap.keySet()。 (文字列キー:のkeySet)のための{ 文字列値=(キー)paramsMap.get。 formBodyBuilder.add(キー、値)。 } FormBody formBody = formBodyBuilder.build()。 リクエスト要求=新しいRequest .Builder() .post(formBody) する.url(URL) .build(); {試みる(レスポンス応答= mOkHttpClient.newCall(リクエスト).execute()) 文字列respStr = response.body()文字列(); respStrを返します。 }キャッチ(例外e){ e.printStackTrace(); 「」を返します。 } } パブリック文字列{(文字列のURL)を取得します 最終Request.Builderビルダー=新しいRequest.Builderを(); builder.url(URL); 最終的な要求要求= builder.build()。 (レスポンス応答= mOkHttpClient.newCall(リクエスト).executeを()){試みる 戻りresponse.body()文字列()。 }キャッチ(例外e){ e.printStackTrace(); 「」を返します。 } } パブリック静的ボイド試験(){ セッションSS =新しいセッション()。 文字列loginUrl = "http://192.168.9.244:8080/RDCJWeb/login"。 HashMapの<文字列、文字列> paramsMap =新しいHashMapの<>(); paramsMap.put( "ユーザ名"、 "SOFT1"); paramsMap.put(」 ストリングrespStr = ss.post(loginUrl、paramsMap)。 ストリングRES = ss.get( "http://192.168.9.244:8080/RDCJWeb/static/dist/html/deviceWarn.html")。 System.out.println(RES)。 } パブリック静的無効メイン(文字列[] args){ テスト(); } }