Android_okhttp網路請求封裝
阿新 • • 發佈:2022-03-24
封裝類
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); } }); } }); } }