OkHttp的get和post請求


OkHttp的get、Post

由於沒有看過書籍,不能將理論正確的描述出來,只能根據自己的理解,帶大家認識下java開發下的OkHttp的get和post兩種請求方式。

依賴的包為:okio-1.15.0.jar+okhttp-3.11.0.jar

如果出現NoSuchMethod情況可能是兩個包產生了沖突,也可能是因為包里本身就不包含那個方法,最開始我用的okio-1.9.0.jar的包出現了該問題,查看是存在該方法,於是更換成更新的okio-1.15.0.jar,解決了沖突問題。

方法okHttpGet()里面說明了OkHttp的get請求方式,其中 new Request.Builder().url(url).build();可以換成new Request.Builder().get().url(url).build()。

方法okHttpPost()說明了post請求方式,主要需要傳入參數,方式有很多種可以是JSON、Map,這里采用了最簡單傳參。

package http;

import java.io.IOException;

import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.FormBody;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;
import okhttp3.Response;

public class OkHttpTest {
    public static void main(String args[]) {
        OkHttpTest otget = new OkHttpTest();
        String url1 = "http://baidu.com";
        String url = "http://122.222.222.222:9004/http/sms";
        otget.okHttpGet(url1);
        otget.okHttpPost(url);
    }

    private void okHttpGet(String url) {
        // 首先需要創建一個OkHttpClient對象用於Http請求, 可以改成全局型
        OkHttpClient client = new OkHttpClient().newBuilder().build();
        // 創建一個request對象
        Request request = new Request.Builder().url(url).build();
        // 執行和回調
        client.newCall(request).enqueue(new Callback() {
            public void onFailure(Call call, IOException e) {

            }

            public void onResponse(Call call, Response response)
                    throws IOException {
                String str = response.body().string();
                System.out.println("OkHttp的get()請求方式" + str);
            }
        });

    }

    /*
     * post請求 get不一樣的地方就是傳參數不一樣,post請求需要把參數封裝到RequestBody對象,
     * 調用Request對象的post方法把RequestBody傳入進去
     */
    private void okHttpPost(String url) {
        OkHttpClient okHttpClient = new OkHttpClient();
        FormBody.Builder formBuilder = new FormBody.Builder();
        formBuilder.add("name", "test1");// 請求參數一
        formBuilder.add("pass", "test2");// 請求參數二
        formBuilder.add("mobiles", "XXX2XXXXXXX");// 請求參數三
        formBuilder.add("content", "OkHttp的post()請求方式.測試測試");// 請求參數四
        RequestBody requestBody = formBuilder.build();
        Request request = new Request.Builder().post(requestBody).url(url)
                .post(requestBody).build();
        try {
            Response response = okHttpClient.newCall(request).execute();
            String result = response.body().string();
            System.out.println("OkHttp的post()請求方式" + result);
            response.body().close();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

一步一步提升自己,只有靜下來好好分析才可以理解,當有其他思想時,自己是怎么都進不到里面去的,我就是這樣,突然想說只要用心,我們就會有收獲。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM