public static void asynPost(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();
executeAsyn(request);
}
public static void asynGet(String url){
Request request = new Request.Builder()
.url(url)
.build();
executeAsyn(request);
}
public static String executeAsyn(Request request){
System.out.println("start");
try {
OkHttpClient client = new OkHttpClient();
client.newCall(request).enqueue(new Callback() {
@Override
public void onResponse(Response response) throws IOException {
System.out.println(response.body().contentType().toString());
System.out.println(response.body().string());
}
@Override
public void onFailure(Request response, IOException e) {
e.printStackTrace();
}
});
System.out.println("end");
} catch (Exception e) {
e.printStackTrace();
}
return "{\"error\":\"fail\"}";
}
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;
}
okhttp 异步调用
最新推荐文章于 2024-05-15 04:47:05 发布