1. 程式人生 > 其它 >Android_okhttp網路請求封裝

Android_okhttp網路請求封裝

封裝類

okhttp封裝類
package com.lyarn.study;

import java.util.Map;
import okhttp3.FormBody;
import okhttp3.MediaType;
import okhttp3.OkHttpClient;
import okhttp3.Request;
import okhttp3.RequestBody;

public class NetWork {

    public static void get(String url,okhttp3.Callback callback){
        OkHttpClient okHttpClient=new OkHttpClient();
        Request request=new Request.Builder()
                .url(url)
                .build();
        okHttpClient.newCall(request).enqueue(callback);
    }

    public static void postJ(String url,String json,okhttp3.Callback callback){
        OkHttpClient okHttpClient=new OkHttpClient();
        RequestBody requestBody=RequestBody
                .create(MediaType.parse("application/json"),json);
        Request request=new Request.Builder()
                .url(url)
                .post(requestBody)
                .build();
        okHttpClient.newCall(request).enqueue(callback);
    }

    public static void postF(String url, Map<String,String> map,okhttp3.Callback callback){
        FormBody.Builder builder=new FormBody.Builder();
        for (String key:map.keySet()){
            builder.add(key,map.get(key));
        }
        OkHttpClient okHttpClient=new OkHttpClient();
        Request request=new Request.Builder()
                .url(url)
                .post(builder.build())
                .build();
        okHttpClient.newCall(request).enqueue(callback);
    }
}

呼叫類

呼叫okhttp_Form請求
package com.lyarn.study;

import androidx.appcompat.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import java.io.IOException;
import java.util.HashMap;
import okhttp3.Call;
import okhttp3.Callback;
import okhttp3.Response;

public class NetWorkTest extends AppCompatActivity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_net_work_test);

        Button button=findViewById(R.id.NetWorkTestButton);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                HashMap hashMap=new HashMap();
                hashMap.put("city","廣州");
                NetWork.postF("https://api.isoyu.com/api/Weather/get_weather", hashMap, new Callback() {
                    @Override
                    public void onFailure(Call call, IOException e) {
                        Log.d("e", String.valueOf(e));
                    }
                    @Override
                    public void onResponse(Call call, Response response) throws IOException {
                        String res=response.body().string();
                        Log.d("res",res);
                    }
                });
            }
        });
    }
}