嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

周梦康 发表于 2015-03-22 2395 次浏览 标签 : Android
package com.zhoumengkang.lqpark;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;

/**
 * Created by zhoumengkang on 22/3/15.
 */
public class HttpClient {
    /**
     * 监听接口
     */
    public interface OnResponseListener{
        public void OnSuccess(String result);
        public void OnError();
    }

    public  OnResponseListener listener;

    public void setListener(OnResponseListener listener) {
        this.listener = listener;
    }

    public  void get(final String url){
        new Thread(new Runnable() {
            @Override
            public void run() {
                HttpResponse httpResponse = null;
                HttpEntity httpEntity = null;//响应的实体内容
                //生成请求对象
                HttpGet httpGet = new HttpGet(url);
                //生成一个Http客户端对象
                org.apache.http.client.HttpClient httpClient = new DefaultHttpClient();
                //使用http客户端发送请求对象
                InputStream inputStream = null;
                String result = "";
                try {
                    //返回的响应
                    httpResponse = httpClient.execute(httpGet);
                    httpEntity = httpResponse.getEntity();
                    inputStream = httpEntity.getContent();
                    BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));

                    String line = "";
                    while((line = reader.readLine()) != null){
                        result = result +line;
                    }
                    if(listener!=null){
                        listener.OnSuccess(result);
                    }

                } catch (ClientProtocolException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                } catch (IOException e) {
                    // TODO Auto-generated catch block
                    e.printStackTrace();
                }
                finally{
                    try{
                        inputStream.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                }

            }
        }).start();
    }
}

Activity中做调用

public void onClick(View v) {
	//...
    String apiUrl = API_BASE_URL + "method=index";
	HttpClient client = new HttpClient();

	client.setListener(new HttpClient.OnResponseListener() {
	    @Override
	    public void OnSuccess(String result) {
	        Message msg = new Message();
	        Bundle data = new Bundle();
	        data.putString("value",result);
	        msg.setData(data);
	        handler.sendMessage(msg);
	    }

	    @Override
	    public void OnError() {

	    }
	});
	client.get(apiUrl);
}

Handler handler = new Handler(){
    @Override
    public void handleMessage(Message msg) {
        super.handleMessage(msg);
        Bundle data = msg.getData();
        String val = data.getString("value");
        //对数据进行操作
    }
};

嗨,老铁,欢迎来到我的博客!

如果觉得我的内容还不错的话,可以关注下我在 segmentfault.com 上的直播。我主要从事 PHP 和 Java 方面的开发,《深入 PHP 内核》作者之一。

[视频直播] PHP 进阶之路 - 亿级 pv 网站架构的技术细节与套路 直播中我将毫无保留的分享我这六年的全部工作经验和踩坑的故事,以及会穿插着一些面试中的 考点难点加分点

评论列表