okhttp使い方

  1. 操作を取得する(動作パラメータを取得したURLをバックスプライスされます)
    1  公共 ボイドのdoGet(ビュービュー){
     2          // 1拿到okHttpClient对象
     3    //       OkHttpClient okHttpClient =新しいOkHttpClient()。
    4          // 2、构造要求
    5          Request.Builderビルダー= 新しいRequest.Builder()。
    6          要求要求= ビルダー
     7                  に.get()
     8                  する.url(mBaseUrl + "?1234 =ユーザー名=シッド&パスワードログイン" 9                  .build();
    10          // 3.4 
    11          executeRequest(リクエスト)。
    12      }

     

  2. GAT、POSTは、パブリックメソッドを抽出しました
    1  公共 ボイドexecuteRequest(要求リクエスト){
     2          // 要求コールとしてパッケージ3。
    3。          コールコール= okHttpClient.newCall(要求);
     4          // 。4、呼び出し(コールバック関数の戻り値の応答ではなく、UIスレッド内で行います)
    。5          call.enqueue(新しい新しいコールバック(){
     6              @Override
     7。             公共 ボイドONFAILURE(要求リクエストは、IOException E){
     8。                  ル( "ONFAILURE" + e.getMessage());
     9              }
     10              @Override
     。11              公共 ボイド onResponse(レスポンスレスポンス)スローのIOException {
     12である                  :ル( "onResponse" ;)
     13は、                 最終的な文字列STR = response.body()文字列();.
     14                  //              textView.setText(STR); UI操作不能子スレッド
     15                  @ 正しい方法:
    16                  runOnUiThread(新しい新しいRunnableを(){
     17。                     @Override
     18は                     公共 ボイドRUN(){
     19。                         textView.setText(STR);
     20である                     }
     21れる                 });
     22である             }
     23れます         })。
    24  
    25      }

     

  3. ポスト(POSTリクエストのボディパラメータはresponseBodyを設定されています)
    1  公共 ボイドdoPostメソッド(ビュービュー){
     2つの         // 1 okHttpClientオブジェクト取得する
     3          // 要求の構成を2
     。4          // requestBody構成2.1
     。5          // FormEncodingBuilderパラメータはポストビルダーを渡される
    。6          FormEncodingBuilder requestBodyBuilder = 新しい新しいFormEncodingBuilder( );
     7          requestBody requestBody = requestBodyBuilder
     。8                  .add( "ユーザ名"、 "シッド" 9。                  .add( "パスワード"、 "123456789" ).build();
     10  
    。11          Request.Builderビルダー= 新しい新Request.Builder();
    12          リクエスト要求= builder.url(mBaseUrl + "ログイン" ).post(requestBody).build();
    13          // 3.4 
    14          executeRequest(リクエスト)。
    15      }

     

     

  4. JSON文字列をPOST
    1  公共 ボイドdoPostString(ビュービュー){
     2          // requestBodyとして送出する文字列は、上記の方法は、requestBodyの構成のみ異なる
     3          //は専用モードFormEncodingBuilderによって構成されるストリングポストを使用する必要がある
     。4  
    。5          // 最初タイプおよび文字符号化、2番目の文字列を含むパラメータ
    6。          requestBody requestBody = RequestBody.create(MediaType.parse( "テキスト/プレーン; = UTF-8 chaset。")、 "{ユーザー名:シッド、パスワード:09876}" ;
     7          Request.Builderビルダー= 新しい新しいRequest.Builder();
     8          要求=要求builder.url(mBaseUrl + "postString" ).post(requestBody).build();
     9          // 3,4- 
    10         executeRequest(リクエスト)。
    11      }

     

    文字列の結果出Serverプリント:

     

  5. サーバーコード:
    1つの パブリック文字列ログイン(){
     2          のSystem.out.println(ユーザ名+ "" + パスワード)。
    3          HttpServletResponseの応答= ServletActionContext.getResponse()。
    4          試行{
     5              のPrintWriterライター= response.getWriter()。
    6              writer.write( "ログイン成功!" );
    7              writer.flush()。
    8          } キャッチ(IOExceptionを電子){
     9              // TODO自動生成されたcatchブロック
    10              e.printStackTrace();
    11          }        
     12         リターン ヌル13      }
     14      公衆ストリングpostString(){
     15          のHttpServletRequest要求= ServletActionContext.getRequest()。
    16          試み{
     17              サーブレット入力iServletInputStream = request.getInputStream()。
    18              
    19              のStringBuilder SB = 新規のStringBuilder();
    20              INT LEN = 0 21              バイト [] BUF = 新しい バイト [1024 ];
    22              一方((LEN = iServletInputStream.read(BUF))!= -1 ){
    23                  sb.append(新しい文字列(BUF、0 、LEN))。
    24              }
     25              のSystem.out.println(sb.toString())。
    26              
    27          } キャッチ(IOExceptionを電子){
     28              // TODO自動生成されたcatchブロック
    29              e.printStackTrace();
    30          }
     31          
    32          リターン ヌル33      }

     

  6. サーバはクライアントの要求を流れパラメータは、クライアントがデータ・サーバが応答InputStreamの中に入るために、コールバックによる通常受け取る、メンバ変数でデータを取得するサービスクライアントを得ている得るためにされて受け取ります
  7. セッションは、問題を保つために:サーバーをユーザーがログインした後にセッションIDが生成されます、セッションIDは、クライアントがライフサイクルを繰り返してログインすることはできません、まだセッションIDサーバセッションIDを取得する場合、利用者は、として決定することができ、クライアントにクッキーの形で返します。ログインするかどうか。あなたは、セッションIDを取得することができます
  8. Notesから:https://www.imooc.com/learn/764

おすすめ

転載: www.cnblogs.com/cydqqq/p/11203420.html