您的位置:首页 > 理论基础 > 计算机网络

okhttp,get,post,put,delete 请求

2016-07-08 14:15 405 查看
public static String doGet(String url){
//创建一个Request
final Request request = new Request.Builder()
.url(url)
.build();
return  execute(request);
}
public static String doPost(String url,String reqbody,Map<String,Object> map){

FormEncodingBuilder builder=addParamToBuilder(reqbody, map);
RequestBody body = builder.build();
Request request = new Request.Builder()
.url(url)
.post(body)
.build();
return execute(request);
}

public static String doPut(String url,String reqbody,Map<String,Object> map){
FormEncodingBuilder builder=addParamToBuilder(reqbody, map);
RequestBody body = builder.build();
Request request = new Request.Builder()
.url(url)
.put(body)
.build();
return execute(request);
}
public static String doDelete(String url,String reqbody,Map<String,Object> map){
FormEncodingBuilder builder=addParamToBuilder(reqbody, map);
RequestBody body = builder.build();
Request request = new Request.Builder()
.url(url)
.delete(body)
.build();
return execute(request);
}
public static FormEncodingBuilder  addParamToBuilder(String reqbody,Map<String,Object> map){
FormEncodingBuilder builder=new FormEncodingBuilder();
if(!StringUtils.isEmpty(reqbody)){
if(reqbody.startsWith("?")){
reqbody=reqbody.substring(1);
}
String[] params=reqbody.split("&");
for(int i=0;i<params.length;i++){
if(params[i].equals("")){
continue;
}
String [] kv=params[i].split("=");
builder.add(kv[0], kv[1]);
}
}
if(map!=null){
Iterator<Entry<String,Object>> ite= map.entrySet().iterator();
for(;ite.hasNext();){
Entry<String,Object> kv=ite.next();
builder.add(kv.getKey(), kv.getValue().toString());
}
}
return builder;
}

public static String execute(Request request){
try {
OkHttpClient client = new OkHttpClient();
Response response = client.newCall(request).execute();
if (response.isSuccessful()) {
return response.body().string();
}
} catch (IOException e) {
e.printStackTrace();
}
return "{\"error\":\"fail\"}";
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  string url okhttp