android中使用httpclient提交表单
来源:互联网 发布:独生子女政策 知乎 编辑:程序博客网 时间:2024/05/21 06:35
在android开发中如果我们需要和服务器端交互的时候已经使用apache client项目进行表单的模拟提交。通过返回json对象进而来达到数据的提交与取回,同时又能保证session的有效性以及系统的安全性,这里我封装了一下httpclient的get和post方式来提交数据
- /**
- *
- */
- package com.jiuchongju.util;
- import java.util.ArrayList;
- import java.util.List;
- import java.util.Map;
- 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.HttpGet;
- import org.apache.http.client.methods.HttpPost;
- import org.apache.http.impl.client.DefaultHttpClient;
- import org.apache.http.message.BasicNameValuePair;
- import org.apache.http.protocol.HTTP;
- import org.apache.http.util.EntityUtils;
- /**
- * Description:
- * @version 1.0
- */
- public class HttpUtil
- {
- // 创建HttpClient对象
- public static HttpClient httpClient ;
- public static final String BASE_URL =
- "http://www.xxx.com/projectname/name_baidu!jsonstring";
- /**
- *
- * @param url 发送请求的URL
- * @return 服务器响应字符串
- * @throws Exception
- */
- public static String getRequest(String url)
- throws Exception
- {
- httpClient= new DefaultHttpClient();
- try{
- // 创建HttpGet对象。
- HttpGet get = new HttpGet(url);
- // 发送GET请求
- HttpResponse httpResponse = httpClient.execute(get);
- // 如果服务器成功地返回响应
- if (httpResponse.getStatusLine()
- .getStatusCode() == 200)
- {
- // 获取服务器响应字符串
- String result = EntityUtils
- .toString(httpResponse.getEntity());
- return result;
- }
- }catch(Exception e){
- e.printStackTrace();
- return "获取数据失败!";
- }finally{
- httpClient.getConnectionManager().shutdown();
- }
- return null;
- }
- /**
- *
- * @param url 发送请求的URL
- * @param params 请求参数
- * @return 服务器响应字符串
- * @throws Exception
- */
- public static String postRequest(String url
- , Map<String ,String> rawParams)
- {
- httpClient= new DefaultHttpClient();
- try{
- // 创建HttpPost对象。
- HttpPost post = new HttpPost(url);
- // 如果传递参数个数比较多的话可以对传递的参数进行封装
- List<NameValuePair> params = new ArrayList<NameValuePair>();
- for(String key : rawParams.keySet())
- {
- //封装请求参数
- params.add(new BasicNameValuePair(key , rawParams.get(key)));
- }
- // 设置请求参数
- post.setEntity(new UrlEncodedFormEntity(
- params,HTTP.UTF_8));
- // 发送POST请求
- HttpResponse httpResponse = httpClient.execute(post);
- // 如果服务器成功地返回响应
- if (httpResponse.getStatusLine()
- .getStatusCode() == 200)
- {
- // 获取服务器响应字符串
- String result = EntityUtils
- .toString(httpResponse.getEntity());
- return result;
- }
- }catch(Exception e){
- e.printStackTrace();
- }finally{
- httpClient.getConnectionManager().shutdown();
- }
- return null;
- }
- }
需要说明的是,这个一般不能直接在主线程来做这个动作,这样会因为网络问题造成主线程假死。手机客户端的UI卡掉
一般我都是异步进行数据的调用
- android中使用httpclient提交表单
- android中使用httpclient提交表单
- android中使用httpclient提交表单
- Android 使用HttpClient提交表单数据
- 使用httpclient模拟表单提交,上传图片
- 使用httpclient提交表单方式上传文件
- Android中使用HttpClient框架进行get/post提交
- httpClient 模拟表单提交
- 使用HttpClient MultipartEntity 上传图片 类似于表单提交
- 使用httpclient 抓包 提交表单 网络请求
- Android中使用HttpClient
- httpclient提交表单 访问接口
- httpclient使用post提交json参数,(跟使用表单提交区分)
- 使用httpclient提交数据
- 使用httpclient提交数据
- Android中使用Apache HttpClient
- jQuery中使用$.ajax提交表单
- EasyUI中使用Ajax提交文件表单
- UIWindow & UIWindowLevel详解
- 单例
- poj1704 Georgia and Bob------P/N分析
- Linux系统管理员十一大工作心得
- GLSL 图形流水线
- android中使用httpclient提交表单
- 用WPF控件MediaElement创建简易播放器(视频区域、播放控制区域、播放列表、循环播放)
- UINavigationController使用详解
- STL-------------equal_range:返回在特定范围中指定的元素的上下界
- xp补丁导致 vs2008 出现" 尝试读取或写入受保护的内存。这通常指示其他内存已损坏 " 的解决办法
- VS2005编译PagedGeometry 1.1.0
- servlet中get和post区别
- jquery Ajax 返回JSON报错: org.apache.struts2.json.JSONException: java.lang.reflect.InvocationTargetExce
- [Android1.5]TextView跑马灯效果