url参数转json、json转Map<String,String>、Map<String,String>转RequestBody
private RequestBody setRequestBody(Map<String, String> BodyParams){
RequestBody body=null;
okhttp3.FormBody.Builder formEncodingBuilder=new okhttp3.FormBody.Builder();
if(BodyParams != null){
Iterator<String> iterator = BodyParams.keySet().iterator();
String key = "";
while (iterator.hasNext()) {
key = iterator.next().toString();
formEncodingBuilder.add(key, BodyParams.get(key));
}
}
body=formEncodingBuilder.build();
return body;
}
public static JSONObject getJsonStrByQueryUrl(String paramStr){
String[] params = paramStr.split("&");
JSONObject obj = new JSONObject();
for (int i = 0; i < params.length; i++) {
String[] param = params[i].split("=");
if (param.length >= 2) {
String key = param[0];
String value = param[1];
for (int j = 2; j < param.length; j++) {
value += "=" + param[j];
}
try {
obj.put(key,value);
} catch (JSONException e) {
e.printStackTrace();
}
}
}
return obj;
}
public static Map<String,String> JsonToMap(JSONObject j) throws JSONException {
Map<String,String> map = new HashMap<>();
Iterator<String> iterator = j.keys();
while(iterator.hasNext()){
String key = (String)iterator.next();
String value = j.getString(key);
map.put(key, value);
}
return map;
}
ohttp同步请求 json参数
public String jpost(String url,String json) throws IOException {
OkHttpClient okHttpClient =new OkHttpClient();
RequestBody requestBody=RequestBody.create(json, MediaType.parse("application/json"));
Request request=new Request.Builder().url(url).post(requestBody).build();
Call call =okHttpClient.newCall(request);
Response response= call.execute();
return response.body().string();
}
Okhttp GET POST异步请求
public void okget(String url){
Request.Builder builder=new Request.Builder();
builder.url(url);
Request request=builder.build();
Call call = mOkHttpClient.newCall(request);
Message message=new Message();
call.enqueue(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
message.what=0x01;
message.obj="查询失败,请检查网络";
mHandler.sendMessage(message);
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
message.what=0x2;
message.obj=response.body().string();
mHandler.sendMessage(message);
}
});
}
public void okpost(String url,RequestBody body,String header){
Request.Builder builder=new Request.Builder();
builder.url(url);
builder.post(body);
Request request=builder.build();
Call call = mOkHttpClient.newCall(request);
Message message=new Message();
call.enqueue(new Callback() {
@Override
public void onFailure(@NonNull Call call, @NonNull IOException e) {
message.what=0x01;
message.obj="查询失败,请检查网络";
mHandler.sendMessage(message);
}
@Override
public void onResponse(@NonNull Call call, @NonNull Response response) throws IOException {
message.what=0x3;
message.obj=response.body().string();
mHandler.sendMessage(message);
}
});
}
mOkHttpClient=new OkHttpClient();
mHandler=new Handler(){
@Override
public void handleMessage(@NonNull Message msg) {
super.handleMessage(msg);
if(msg.what==0x2){
}else if(msg.what==0x01){
}else if(msg.what==0x03){
}
};
Handler发送
Message message = new Message();
message.what = 0x01;
message.obj = "666666";
mHandler.sendMessage(message);