Android中OKHttp框架的使用

来源:互联网 发布:vmware for ubuntu 编辑:程序博客网 时间:2024/05/01 12:32

//使用okhttp代替了 Httpclient,Httpuricotion,使用该框架请求网络,是谷歌推出的最新的一款技术,今天在这里展示

这是一个工具类,直接调用就可以了
这个请求,需要一个Jar包

package com.example.utils;import java.io.IOException;import java.util.ArrayList;import java.util.Iterator;import java.util.List;import java.util.Map;import java.util.Map.Entry;import org.apache.http.HttpEntity;import org.apache.http.HttpResponse;import org.apache.http.NameValuePair;import org.apache.http.client.HttpClient;import org.apache.http.client.entity.UrlEncodedFormEntity;import org.apache.http.client.methods.HttpPost;import org.apache.http.impl.client.DefaultHttpClient;import org.apache.http.message.BasicNameValuePair;import org.apache.http.util.EntityUtils;import android.content.Context;import android.util.Log;import android.widget.Toast;import com.squareup.okhttp.FormEncodingBuilder;import com.squareup.okhttp.OkHttpClient;import com.squareup.okhttp.Request;import com.squareup.okhttp.Response;public class HttpTool {    protected static final String TAG = "HttpTool";    // http://169.254.61.202:8080/MyPaoT/register    private String result = null;    public String doPost(final String url, final Map<String, String> map,            final String charset) {        new Thread() {            public void run() {                HttpClient httpClient = null;                HttpPost httpPost = null;                try {                    httpClient = new DefaultHttpClient();                    httpPost = new HttpPost(url);                    List<NameValuePair> list = new ArrayList<NameValuePair>();                    Iterator iterator = map.entrySet().iterator();                    while (iterator.hasNext()) {                        Entry<String, String> elem = (Entry<String, String>) iterator                                .next();                        list.add(new BasicNameValuePair(elem.getKey(), elem                                .getValue()));                    }                    if (list.size() > 0) {                        UrlEncodedFormEntity entity = new UrlEncodedFormEntity(                                list, charset);                        httpPost.setEntity(entity);                    }                    HttpResponse response = httpClient.execute(httpPost);                    if (response != null) {                        HttpEntity resEntity = response.getEntity();                        if (resEntity != null) {                            result = EntityUtils.toString(resEntity, charset);                            Log.i(TAG, "-HttpTool这里是 是否注册成功" + result);                        }                    }                } catch (Exception ex) {                    ex.printStackTrace();                }            };        }.start();        return result;    } /**  *     OKHttp  * @param url  * @param map  * @return  */    public static String post(final String url, final Map<String, String> map) {        OkHttpClient client = new OkHttpClient();        FormEncodingBuilder formBody = new FormEncodingBuilder();        Iterator it = map.entrySet().iterator();        System.out.println(map.entrySet().size());        String key;        String value;        while (it.hasNext()) {            Map.Entry entry = (Map.Entry) it.next();            key = entry.getKey().toString();            value = entry.getValue().toString();            formBody.add(key, value);//          System.out.println(key + "====" + value);            Log.i(TAG, "@@@@@");        }        Request request = new Request.Builder().url(url).post(formBody.build())                .build();        Log.i(TAG, request+"====request===");        Response response = null;        try {            response = client.newCall(request).execute();             Log.i(TAG, response+"====response===");            String string = response.body().string();             Log.i(TAG, string+"====string===");            if (string!=null) {                return string;            }else{                 Log.i(TAG, string+"=======");            }        } catch (IOException e) {            e.printStackTrace();        }        return null;    }}

0 0