HTTPリクエストには、それが対話的に非常に一般的なデータです。
以下の説明:GETとPOSTの2実際の例。
試験のためのアクション(コントローラ)。
(値= "getData.jsonを" @RequestMapping ) 公共@ResponseBody ServerResponseのgetData(HttpSessionのセッション、RequestBody人々人々 @){ 返す 新しいServerResponse(人を)。 }
ケース(ポスト):
輸入org.json.JSONObject; 輸入java.util.HashMapを; 輸入java.util.Map; パブリック クラスメイン{ プライベート 静的な 最終文字列のURL =「http://XXX.XXX.XXX.XXX:XXXX/getData.json」。 パブリック 静的 ボイドメイン(文字列[]引数){ 文字列のURL = URL。 地図・マップ = 新しいHashMapの(); map.put( "名前"、 "李磊" ); map.put( "年齢"、 "18" )。 JSONObject JSON = 新しいJSONObject(マップ); JSONObject解像度 =PostInterface.postJson(URL、JSON)。 System.out.println(res.toString())。 } }
輸入org.apache.http.HttpResponse。 輸入org.apache.http.HttpStatus。 輸入org.apache.http.client.methods.HttpPost; 輸入org.apache.http.entity.StringEntity。 輸入org.apache.http.impl.client.CloseableHttpClient。 輸入org.apache.http.impl.client.HttpClientBuilder。 輸入org.apache.http.util.EntityUtils。 輸入org.json.JSONObject; 輸入いるjava.nio.charset.Charset。 / ** *请求类 * / パブリック クラスPostInterface { 公共の 静的 JSONObject postJson(文字列のURL、JSONObjectのJSON){ CloseableHttpClientのHTTPClient =HttpClientBuilder.create()ビルド();. HttpPost POST = 新新HttpPost(URL); JSONObjectレスポンス = ヌル; 試み{ // UTF-8を使用して符号化、歪曲中国避けるために StringEntity = S 新新(json.toString()StringEntityを、文字セット.forName( "GBK" )); s.setContentType( "ファイルアプリケーション/ JSON"); // JSONのcontentTypeのセットにデータを送信し 、post.setEntity(S) はHttpResponse RES = httpclient.execute(POST)を、 IF HttpStatus.SC_OK){(res.getStatusLine()getStatusCode()== 文字列結果 = EntityUtils.toString(res.getEntity())。// 返回JSON格式: 応答= 新しいJSONObject(結果); } } キャッチ(例外e){ スロー 新規のRuntimeException(e)を、 } を返す応答。 } }
結果:
試験のためのアクション(コントローラ)。
@ RequestMapping(値= "getData.json" ) 公共@ResponseBody serverResponseのgetData(HttpSessionのセッション、文字列のフラグ){ 文字列str; IF(!StringUtils.isBlank(旗)){ STR = "+フラグ+" "あなたの伝記があります" "" ; } 他{ STRは = "あなたのパスは"空である; } 返す 新しい新serverResponse(STR)を; }
ケース(取得):
パブリック クラスメイン{ プライベート 静的な 最終文字列のURL =「http://XXX.XXX.XXX.XXX:XXXX/getData.json」。 パブリック 静的 ボイドメイン(文字列[]引数){ 文字列のURL = URL。 ストリングRES = PostInterface.doGet(URL +、 "UTF-8" "フラグ= 1?" )。 System.out.println(res.toString())。 } }
輸入org.apache.http.HttpEntity。 輸入org.apache.http.HttpResponse。 輸入org.apache.http.client.methods.HttpGet; 輸入org.apache.http.impl.client.CloseableHttpClient。 輸入org.apache.http.impl.client.HttpClientBuilder。 輸入org.apache.http.util.EntityUtils。 / ** *请求类 * / パブリック クラスPostInterface { パブリック 静的文字列のdoGet(文字列のURL、文字列の文字セット){ 場合(ヌル == 文字セット){ 文字セット = "UTF-8" 。 } CloseableHttpClientのHTTPClient= HttpClientBuilder.create()()を構築します。 HTTPGET HTTPGET = nullを。 文字列の結果 = nullを。 試す{ HTTPGET = 新しいHTTPGET(URL); HttpResponse応答 = httpclient.execute(HTTPGET)。 もし(!応答= NULL ){ HttpEntity resEntity = response.getEntity()。 もし(!resEntity = NULL ){ 結果 = EntityUtils.toString(resEntity、文字セット)。 } } } キャッチ(例外e){ e.printStackTrace(); } 戻り値の結果; } }
結果:
あなたが例実装プロセスで問題が発生した場合:グループ通信に追加することができ、または下記のコメント