Android HTTP操作
来源:互联网 发布:淘宝复古女装店铺 编辑:程序博客网 时间:2024/04/30 18:04
首先,这种网络的请求肯定是在线程中操作的,可以是
MyRunable runable = new MyRunable();Thread thread = new Thread(runable);thread.start();class MyRunable implements Runnable {//http的操作写在这里}
传送方式有两种,一种get,一种post。涉及到HttpEntity详见本博客关于HttpEntity的描述
post
boolean loginValidate = false; //用于判断请求是否成功// 使用apache HTTP客户端实现HttpPost request = new HttpPost(urlStr); //生成一个HttpPost类,表示我现在是要用Post方式发送内容// 如果传递参数多的话,可以对传递的参数进行封装 NameValuePair是Apache的一个简单封装类,也可以用map作为参数List<NameValuePair> params = new ArrayList<NameValuePair>();params.add(new BasicNameValuePair("uid", Data.uid+""));params.add(new BasicNameValuePair("content", content));try {HttpEntity requestHttpEntity = new UrlEncodeFormEntiry(params, HTTP.UTF_8); //把参数数据封装在HttpEntity中,在post中,数据都是同过这种方式封装的// 设置请求参数项request.setEntity(requestHttpEntity); //将请求的内容封装在request中HttpClient client = getHttpClient();//见关于HttpClient的函数内容 HttpResponse response = client.execute(request); // 执行请求返回相应// 判断是否请求成功if (response.getStatusLine().getStatusCode() == 200) {loginValidate = true;HttpEntity responehttpEntity = response.getEntity(); //从响应中重新获取HttpEntity类 // 获得响应信息,result即为返回结果result = EntityUtils.toString(responehttpEntity); //将响应内容转为字符串,也就是最原始的JSON格式数据inputStream = responehttpEntity.getContent(); //可以将内容直接转为流来处理}} catch (Exception e) {e.printStackTrace();}return loginValidate;
get
<span style="white-space:pre"></span>String url = baseUrl + "?" + "name=" + "zhangsan" + "&age=" + "20"; //直接将请求参数写在url中HttpGet requestt = new HttpGet(url); //直接封装HttpClient httpClient = getHttpClient();//见关于HttpClient的函数内容 try {HttpResponse response = httpClient.execute(request); // 执行请求返回相应HttpEntityhttpEntity = httpResponse.getEntity();//从响应中重新获取HttpEntity类 // 获得响应信息,result即为返回结果result = EntityUtils.toString(responehttpEntity); //将响应内容转为字符串,也就是最原始的JSON格式数据inputStream = responehttpEntity.getContent(); //可以将内容直接转为流来处理,记得关闭inputStream}} catch (Exception e) {e.printStackTrace();}
httpClient相关操作
// 初始化HttpClient,并设置超时public HttpClient getHttpClient() {BasicHttpParams httpParams = new BasicHttpParams(); //httpClient的设置类HttpConnectionParams.setConnectionTimeout(httpParams, 5000); //设置连接过去的超时时间 。如果超时 返回 <span style="color: rgb(51, 51, 51); font-family: 'Microsoft Yahei', 微软雅黑, arial, 宋体, sans-serif; line-height: 24px; text-align: justify;"><span style="font-size:10px;">org.apache.commons.httpclient.ConnectTimeoutException:</span></span>HttpConnectionParams.setSoTimeout(httpParams, 10000); //<span style="font-family: Arial, Helvetica, sans-serif;">设置连返回结果的超时时间 ,<span style="color: rgb(51, 51, 51); font-family: 'Microsoft Yahei', 微软雅黑, arial, 宋体, sans-serif; line-height: 24px; text-align: justify;"><span style="font-size:10px;">java.net.SocketTimeoutException: Read timed out</span></span></span>HttpClient client = new DefaultHttpClient(httpParams); //一定要加上这两个超时时间,不然可能就完蛋了return client;}
0 0
- 浅析 Android操作HTTP
- Android HTTP操作
- android学习--操作http
- Android http操作
- Android HTTP操作
- android开发中的http操作
- Android入门--Http网络操作
- 【Android技术整理】HTTP操作
- Android 操作HTTP實現與服務器通信
- Android HTTP操作(二)
- Android HTTP操作(三)
- Android 实现Http get 和post操作
- Android操作HTTP实现与服务器通信
- Android操作HTTP实现与服务器通信
- Android操作HTTP实现与服务器通信
- Android操作HTTP实现与服务器通信
- Android操作HTTP实现与服务器通信
- Android操作HTTP实现与服务器通信
- Memcached常用命令(二)
- c++_primer_exercise_13333435363738
- 最短路径(迪杰斯特拉算法)
- Linux Ubuntu环境下对SD卡分区(烧写uboot,kernel,及filesystem)
- Qt——查找对话框实例
- Android HTTP操作
- 《APUE》第三章笔记(3)
- Mysql 全文本检索
- web方式cgi程序操作串口,不能打开串口
- for循环的执行顺序
- 在Eclipse中开发OSGi(2)开发一个OSGi应用
- hci bluetooth cmd
- deb包安装condor的config方法
- 在MFC下如何定义全局变量和全局函数