android项目往往都需要发送http消息,这里备份下最简单的http消息的发送和接收代码。
CONTENTS
1)HttpClinet方式GET
public class HttpUtils { public static interface onHttpResultListener { public void onHttpResult(String result, int id); } public static void sendGetRequest(String url, onHttpResultListener listener, int id) { if (null == url || url.trim().length() == 0 || null == listener) { return; } new GetThread(url, listener, id).start(); } private static class GetThread extends Thread { private WeakReference<onHttpResultListener> listener = null; private String url; private int id; private GetThread(String url, onHttpResultListener p,int id) { this.id = id; this.url = url; this.listener = new WeakReference<HttpUtils.onHttpResultListener>(p); } @Override public void run() { HttpClient client = new DefaultHttpClient(); HttpGet request = new HttpGet(url.trim()); try { HttpResponse response = client.execute(request); if (response.getStatusLine().getStatusCode() == 200) { String result = EntityUtils.toString(response.getEntity()); onHttpResultListener p = listener.get(); if (p != null) { p.onHttpResult(result, id); } } } catch (Exception e) { e.printStackTrace(); onHttpResultListener p = listener.get(); if (p != null) { p.onHttpResult(null, id); } } } } }
代码写的比较简单,就是定义了线程发送http请求。调用出代码如下,可以通过ID标识不同的http请求和返回值。:
public class LocationService extends Service implements onHttpResultListener{ //===== HttpUtils.sendGetRequest(WeatherUtils.URL_Service, this, 0); //===== @Override public void onHttpResult(String result, int id) { } }
2)HttpClient方式POST
3)HttpURLConnection方式GET
4)HttpURLConnection方式POST
备注
1)2,3,4小章节没有完成,后续补上。
2)参考【 http://www.cnblogs.com/lingyun1120/archive/2012/01/10/2318308.html 】【 http://blog.csdn.net/zhou699/article/details/6442186 】
发表评论