ネットワーク——OKHTTP

4126 ワード

OKhttp使用:
  • 依存https://github.com/square/okhttp compile'com.squareup.okhttp 3:okhttp:3.6.0'は自動的に2つのライブラリをダウンロードします.1つはOKHttp、1つはOkioです.これは前者の通信基盤です.2.okHttpClientのインスタンスOkHttpClient=new OkHttpClient()を作成します.HTTPリクエストを送信するには、RequestリクエストオブジェクトRequest request=new Request.Builder()..url("http://www.baidu.com")build()build()3.Response response=clientを呼び出します.newCall(request).execute(); このresponseはサーバから返されるデータです4.しかし、具体的なString responseData=response.body().string();

  • Postリクエストが開始された場合、RequBody requestbody=new FormBody.Builder().add("username","admin").add("password","123456").build();後でnew Request.Builder().url("http://www.baidu.com").post(requestbody).build(); 使用OKhttp://www.baidu.com 使用可能な下地はカプセル化されているはずです
    new Thread(new Runnable() {
    @Override
    public void run() {
    OkHttpClient okHttpClient=new OkHttpClient();//okオブジェクトの作成
    Request build = new Request.Builder().url("https://www.baidu.com").build();//リクエストを送信するにはこれを追加します
     try {
    
    Response response = okHttpClient.newCall(build).execute();
    
    String string = response.body().string();
    
    showOnUI(string);
    
    } catch (IOException e) {
    
    e.printStackTrace();
    
    }
    
    }
    
    }).start();
    

    ネットワークツールクラス
    私たちのアプリは多くの場所で実際にネットリクエストを使用しているので、ツールクラスをカプセル化します.
    package com.example.networktest;
    
    import java.io.BufferedReader;
    import java.io.InputStream;
    import java.io.InputStreamReader;
    import java.net.HttpURLConnection;
    import java.net.URL;
    
    import okhttp3.Callback;
    import okhttp3.OkHttpClient;
    import okhttp3.Request;
    import okhttp3.Response;
    
    public class HttpUtil {
    
        public static void sendHttpRequest(final String address, final HttpCallbackListener listener) {
            new Thread(new Runnable() {
                @Override
                public void run() {
                    HttpURLConnection connection = null;
                    try {
                        URL url = new URL(address);
                        connection = (HttpURLConnection) url.openConnection();
                        connection.setRequestMethod("GET");
                        connection.setConnectTimeout(8000);
                        connection.setReadTimeout(8000);
                        connection.setDoInput(true);
                        connection.setDoOutput(true);
                        InputStream in = connection.getInputStream();
                        BufferedReader reader = new BufferedReader(new InputStreamReader(in));
                        StringBuilder response = new StringBuilder();
                        String line;
                        while ((line = reader.readLine()) != null) {
                            response.append(line);
                        }
                        if (listener != null) {
                            //   onFinish()  
                            listener.onFinish(response.toString());
                        }
                    } catch (Exception e) {
                        if (listener != null) {
                            //   onError()  
                            listener.onError(e);
                        }
                    } finally {
                        if (connection != null) {
                            connection.disconnect();
                        }
                    }
                }
            }).start();
        }
    
        public static void sendOkHttpRequest(final String address, final okhttp3.Callback callback) {
            OkHttpClient client = new OkHttpClient();
            Request request = new Request.Builder()
                    .url(address)
                    .build();
            client.newCall(request).enqueue(callback);
        }
    
    }
    
    
    String response = HttpUtil.sendHttprequest(path);
    

    注意事項
                 ,          ,                   ,       sendHttpRequest          。
              sendHttpRequest               ,                 ,                   ,                 ,                  ,            。
                     ,       。      :
    
    HttpUtil.sendOkhttpRequest("http://www.baidu.com",new okhttp3.Callback(){
      onResponse  onFailure  
    });