使用okhttp3的get和post請求的工具類
阿新 • • 發佈:2019-01-11
import okhttp3.*;
import org.apache.ibatis.annotations.Param;
import java.io.IOException;
import java.util.Map;
/**
* 用於http請求的工具類
* 使用okhttp3
*/
public class HttpUtil {
/**
* 給定特定的url,引數封裝成一個map,get請求
* @param url
* @param params
* @return 響應字串
*/
private static OkHttpClient client = new OkHttpClient();
public static final MediaType JSON = MediaType.parse("application/json; charset=utf-8");
public static String getResponseWithParams(String url, Map<String,String> params) {
HttpUrl httpUrl = HttpUrl.parse(url);
HttpUrl.Builder builder = httpUrl.newBuilder();
if(params!=null){
for(String key:params.keySet()){
builder.addQueryParameter(key,params.get(key));
}
}
Request request = new Request.Builder()
.url(builder.build())
.build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
/* 非同步處理 */
// client.newCall(request).enqueue(new Callback() {
// @Override
// public void onFailure(Call call, IOException e) {
//
// }
//
// @Override
// public void onResponse(Call call, Response response) throws IOException {
//
// }
// });
}
/**
* 向url傳送get請求
* @param url
* @return 返回的字串
*/
public static String getResponse(String url){
Request request = new Request.Builder()
.url(url)
.build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* post請求 引數是map格式
* @param url
* @param params
* @return
*/
public static String postResponseWithParamsInMap(String url,Map<String,String> params){
FormBody.Builder builder = new FormBody.Builder();
if(params!=null){
for(String key:params.keySet()){
builder.add(key,params.get(key));
}
}
RequestBody body = builder.build();
Request request = new Request.Builder().url(url).post(body).build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
/**
* 引數是json 格式
* @param url
* @param json
* @return
*/
public static String postResponseWithParamsInJson(String url,String json){
RequestBody body = RequestBody.create(JSON,json);
Request request = new Request.Builder().url(url).post(body).build();
try {
String res = client.newCall(request).execute().body().string();
return res;
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
}
以後還需要什麼功能可以繼續完善,也希望大佬留言我可以補充進來!
end