コモンズ - HttpClientを呼び出すHTTPインターフェイス - JavaはHTTPインターフェイス(3)を呼び出します

コモンズ-HttpClientを、元のApache Commonsのプロジェクト内の構成要素である、プロジェクトが今HttpComponents置換されている、代替インターフェースとしてHTTP呼び出され、物品は、その使用を記載しています。Javaの1.8.0_191、コモンズ - HttpClientを3.1:ソフトウェアバージョンに本明細書中で使用されます。

1、サーバー

参照書き込みサーバ- JavaはHTTPインターフェイス(1)を呼び出します 

2、コール

2.1、GETリクエスト

公共の 静的な 無効のget(){
     試み{ 
        文字列requestPath = "のhttp:// localhostを:?8080 / webframe /デモ/テスト/ getUserメソッドのuserId = 1000&userNameの=" + URLEncoder.encode( "李白"、 "UTF-8" )。
        HttpClientをHttpClientを = 新しいHttpClientを(); 
        GetMethod GET = 新しいGetMethod(requestPath)。
        int型のステータス= httpClient.executeMethod(GET);
        もし(ステータス== HttpStatus.SC_OK){ 
            するSystem.out.println( "GET返回结果:" + get.getResponseBodyAsString())。
        } {
            System.out.println( "GETはステータスコードを返す:" + ステータス); 
        } 
    } キャッチ(例外e){ 
        e.printStackTrace(); 
    } 
}

2.2、POST要求(データ送信のキーと値のペア)

公共の 静的な 無効ポスト(){
     試み{ 
        文字列requestPath = "にhttp:// localhost:8080 / webframe /デモ/テスト/ getUserメソッド" 
        HttpClientをHttpClientを = 新しいHttpClientを(); 
        PostMethodポスト = 新しいPostMethod(requestPath)。
        post.addRequestHeader( "のContent-Type"、 "アプリケーション/ x-www-form-urlencodedで;のcharset = UTF-8" )。
        文字列のparam = "userIdを= 1000&userNameの=李白" ; 
        post.setRequestEntity(新しいStringRequestEntity(パラメータ));
        int型のステータス=httpClient.executeMethod(POST);
         IFは(状況== HttpStatus.SC_OK){ 
            するSystem.out.printlnは( "POST結果を返す:" + post.getResponseBodyAsString()); 
        } { 
            するSystem.out.println(「復帰状態POSTコード:「+ ステータス); 
        } 
    } キャッチ(例外e){ 
        e.printStackTrace(); 
    } 
}

2.3、POST要求(JSONデータ伝送)

公共の 静的な 無効POST2(){
     試み{ 
        文字列requestPath = "にhttp:// localhost:8080 / webframe /デモ/テスト/アドユーザー" ; 
        HttpClientをHttpClientを = 新しいHttpClientを(); 
        PostMethodポスト = 新しいPostMethod(requestPath)。
        post.addRequestHeader( "コンテンツタイプ"、 "アプリケーション/ JSON" ); 
        ストリングPARAM = "{\"はuserId \ ":\" 1001 \ "\ "名\":\ "杜甫\"}" 
        post.setRequestEntity(新しいStringRequestEntity(パラメータ));
        IF(ステータス== HttpStatus.SC_OK){ 
            するSystem.out.printlnは( "POST結果を返す:" + post.getResponseBodyAsString()); 
        } { 
            するSystem.out.printlnを( "POSTは、ステータスコードを返す:" + ステータス)。
        } 
    } キャッチ(例外e){ 
        e.printStackTrace(); 
    } 
}

2.4、ファイルをアップロードし、データキーを送信

公共の 静的な 無効マルチ(){
     試み{ 
        文字列requestPath = "にhttp:// localhost:8080 / webframe /デモ/テスト/マルチ" ; 
        HttpClientをHttpClientを = 新しいHttpClientを(); 
        PostMethodポスト = 新しいPostMethod(requestPath)。

        ファイルファイル = 新しいファイル( "D:/a.jpg" ); 
        一部[]部分 = { 新しい FilePart( "ファイル"、ファイル)、新しい StringPart( "PARAM1"、 "参数1"、 "UTF-8")、新しい StringPart( "PARAM2"、 "参数2"、「UTF- 8" )}。
        新しいMultipartRequestEntity(パーツ、post.getParams()));
        int型のステータス= httpClient.executeMethod(ポスト)。
        もし(ステータス== HttpStatus.SC_OK){ 
            するSystem.out.println( "マルチ返回结果:" + post.getResponseBodyAsString())。
        } { 
            (System.out.printlnは "マルチ返回状态码:" + ステータス)。
        } 
    } キャッチ(例外e){ 
        e.printStackTrace(); 
    } 
}

2.5、完全な例

パッケージcom.inspur.http。

インポートのjava.io.File;
輸入java.net.URLEncoder; 

輸入org.apache.commons.httpclient.HttpClient;
輸入org.apache.commons.httpclient.HttpStatus;
輸入org.apache.commons.httpclient.methods.GetMethod;
輸入org.apache.commons.httpclient.methods.PostMethod;
輸入org.apache.commons.httpclient.methods.StringRequestEntity。
輸入org.apache.commons.httpclient.methods.multipart.FilePart;
輸入org.apache.commons.httpclient.methods.multipart.MultipartRequestEntity。
輸入org.apache.commons.httpclient.methods.multipart.Part;
インポートorg.apache.commons.httpclient.methods.multipart.StringPart; 

/ ** 
 * 
 *通过コモンズ-HttpClientを调用のHttp接口
 * 
 * / 
パブリック クラスCommonsHttpClientCase {
     / ** 
     * GET请求
     * / 
    パブリック 静的な のget(){
         試み{ 
            文字列requestPath =「にhttp:// localhost:8080 / webframe /デモ/試験/のgetUserのuserId = 1000&のuserName =」+ URLEncoder.encode( "李白"、 "UTF-8"? )。
            HttpClientをHttpClientを = 新しいHttpClientを(); 
            GetMethod GET = 新しいGetMethod(requestPath)。
            int型=ステータスhttpClient.executeMethod(GET);
             IF(ステータス== HttpStatus.SC_OK){ 
                するSystem.out.println( "GETが結果を返す:" + get.getResponseBodyAsString()); 
            } { 
                するSystem.out.println(「GETリターンステータスコード:「+ 状態); 
            } 
        } キャッチ(例外E){ 
            e.printStackTrace(); 
        } 
    } 
    
    / ** 
     * POSTリクエスト(データ用送信キー)
     * / 
    パブリック 静的な 無効POST(){
         試み{ 
            文字列requestPath= "にhttp:// localhost:8080 / webframe /デモ/テスト/ getUserメソッド" 
            HttpClientをHttpClientを = 新しいHttpClientを(); 
            PostMethodポスト = 新しいPostMethod(requestPath)。
            post.addRequestHeader( "のContent-Type"、 "アプリケーション/ x-www-form-urlencodedで;のcharset = UTF-8" )。
            文字列のparam = "userIdを= 1000&userNameの=李白" ; 
            post.setRequestEntity(新しいStringRequestEntity(パラメータ));
            int型のステータス= httpClient.executeMethod(ポスト)。
            もし(ステータス== HttpStatus.SC_OK){
                System.out.println( "post.getResponseBodyAsString())。
            } { 
                するSystem.out.println( "POST返回状态码:" + ステータス)。
            } 
        } キャッチ(例外e){ 
            e.printStackTrace(); 
        } 
    } 
    
    / ** 
     * POST请求(发送JSON数据)
     * / 
    パブリック 静的な 無効POST2(){
         試み{ 
            文字列requestPath = "にhttp:// localhost:8080 / webframe /デモ/テスト/アドユーザー" ; 
            HttpClientをHttpClientを = 新しいHttpClientを();
            PostMethodポスト = 新しいPostMethod(requestPath)。
            post.addRequestHeader( "コンテンツタイプ"、 "アプリケーション/ JSON" ); 
            ストリングPARAM = "{\"はuserId \ ":\" 1001 \ "\ "名\":\ "杜甫\"}" 
            post.setRequestEntity(新しいStringRequestEntity(パラメータ));
            int型のステータス= httpClient.executeMethod(ポスト)。
            もし(ステータス== HttpStatus.SC_OK){ 
                System.out.printlnは( "POST返回结果:" + post.getResponseBodyAsString())。
            } { 
                するSystem.out.println( "POST返回状态码:" + 状態)。
            }
        } キャッチ(例外E){ 
            e.printStackTrace(); 
        } 
    } 
    
    / ** 
     *アップロードされたデータとキー送信
     * / 
    パブリック 静的な 無効マルチを(){
         試み{ 
            文字列requestPath =「HTTP:// localhostを:8080 / WebFrame /デモ/テスト/マルチ" ; 
            のHttpClientのHttpClient = 新しい新しいHttpClientを(); 
            PostMethod POST = 新しい新しいPostMethod(requestPath); 

            ファイルファイル = 新しい新しいファイル(" D:/a.jpg " ); 
            パート[]パーツ= { 新しい FilePart( "ファイル"、ファイル)、新しい StringPart( "PARAM1"、 "参数1"、 "UTF-8")、新しい StringPart( "PARAM2"、 "参数2"、 "UTF-8" )} ; 
            
            post.setRequestEntity(新しいMultipartRequestEntity(パーツ、post.getParams()));
            int型のステータス= httpClient.executeMethod(ポスト)。
            もし(ステータス== HttpStatus.SC_OK){ 
                するSystem.out.println( "マルチ返回结果:" + post.getResponseBodyAsString())。
            } { 
                (System.out.printlnは "マルチ返回状态码:" + ステータス)。キャッチ(例外e){ 
            e.printStackTrace(); 
        } 
    } 
    
    パブリック 静的 ボイドメイン(文字列[]引数){ 
        GET()。
        役職(); 
        POST2(); 
        マルチ()。
    } 

}
コードの表示

 

 

おすすめ

転載: www.cnblogs.com/wuyongyin/p/11926070.html