Android 通过http访问服务器
目前Android 与服务器交互有两种方式:1.Socket 2. Http ;
但由于Http的封装性以及性能比socket要好,所以推荐使用http方式和服务器交互;
通过http访问服务器有三种方法:1.post 2. get 3.或者上传文件
例子如下:
- protected JSONObject toWebService(String url, String method,
- List<NameValuePair> params) {
- try {
- Log.w("HealthCareAPI", "toWebService: url = " + url);
- HttpUriRequest request = null;
- if (HealthCareApi.GET_METHOD.equalsIgnoreCase(method)) { //Get方法
- url = url + "?" + URLEncodedUtils.format(params, "UTF-8");
- Log.w("HealthCareApiCore", url);
- request = new HttpGet(url);
- } else if (HealthCareApi.POST_METHOD.equalsIgnoreCase(method)) { //Post方法
- HttpPost postRequest = new HttpPost(url);
- UrlEncodedFormEntity entity = new UrlEncodedFormEntity(
- params, HTTP.UTF_8);
- postRequest.setHeader("Content-Type",
- "application/x-www-form-urlencoded; charset=utf-8");
- postRequest.setEntity(entity);
- request = postRequest;
- } else if (HealthCareApi.POST_METHOD_WITH_BIN
- .equalsIgnoreCase(method)) { //上传文件,这里指的是上传图片文件
- HttpPost postRequest = new HttpPost(url);
- MultipartEntity multipartContent = new MultipartEntity();
- for (NameValuePair nameValuePair : params) {
- if (nameValuePair.getName().equals("photo")
- || nameValuePair.getName().equals("pic")
- || nameValuePair.getName().equals("photo_url")) {
- File photoFile = new File(nameValuePair.getValue());
- if (photoFile.exists()) {
- String extensionName = HealthCareApi
- .getExtensionName(photoFile.getName());
- FileBody fileBody = new FileBody(photoFile,
- MimeTypeMap.getSingleton()
- .getMimeTypeFromExtension(
- new String(extensionName).toLowerCase()));
- multipartContent.addPart(
- nameValuePair.getName(), fileBody);
- }
- } else {
- multipartContent.addPart(nameValuePair.getName(),
- new StringBody(nameValuePair.getValue(),
- Charset.forName("UTF-8")));
- }
- }
- postRequest.setEntity(multipartContent);
- request = postRequest;
- }
- HttpParams httpParams = new BasicHttpParams();
- HttpConnectionParams
- .setConnectionTimeout(httpParams, 20 * 1000);
- HttpConnectionParams.setSoTimeout(httpParams, 20 * 1000);
- HttpResponse httpResponse = new DefaultHttpClient(httpParams)
- .execute(request);
- HttpEntity entity = httpResponse.getEntity();
- String res = EntityUtils.toString(entity, "UTF-8");
- Log.w("HealtCareApi", "res: " + res);
- JSONObject object = new JSONObject(res);
- return object;
- } catch (Exception e) {
- e.printStackTrace();
- mException = e;
- }
- return null;
- }
Android 通过http访问服务器的更多相关文章
- Django REST Framework学习——Android使用REST方法访问Diango
本文更应该叫做Android如何模拟浏览器访问Django服务器后台. 环境为: Android通过HttpClient访问服务器,从Django中获取json数据,解析显示在UI界面上. 问题为: ...
- Android使用动态代理搭建网络模块框架
1.Java中的动态代理相信大多数朋友都接触过,在此就不再赘述,如果有不明白的朋友,可以到网上搜一下(一搜一大堆,呵呵..) 2.本节主要阐述一下如何使用动态代理框架实现Android应用的瘦身开发. ...
- 转:RTC搭建android下三层应用程序访问服务器MsSql-客户端
原文:http://www.cnblogs.com/delphi007/p/3346084.html android下stringgrid已知问题: 通过点击时获取对应行的值有问题,在win下调试正常 ...
- 转:RTC搭建android下三层应用程序访问服务器MsSql-服务器端
原文:http://www.cnblogs.com/delphi007/p/3346061.html 前几天通过Ro搭建webservice,然后在android下调用,虽然已近成功,但是返回的数据库 ...
- RTC搭建android下三层应用程序访问服务器MsSql-客户端
android下stringgrid已知问题: 通过点击时获取对应行的值有问题,在win下调试正常,在android下出现定位不准 二.客户端开发 1,新建工程 2,添加相关客户端控件TRtcHttp ...
- RTC搭建android下三层应用程序访问服务器MsSql-服务器端
前几天通过Ro搭建webservice,然后在android下调用,虽然已近成功,但是返回的数据库里的中文有乱码一直未得到解决!rtc6.23版本,已经支持xe5,也支持fmx的android下开发, ...
- Android访问服务器(TOMCAT)乱码引发的问题
1.浏览器往服务器发送的请求主要可分为2种:get.post:delete.head等不赘述. GET方式: 从浏览器上直接敲地址,最大特点就是参数直接跟在地址后面. POST方式:表单提交等. 2. ...
- Android端访问服务器核心代码
- Android JSON、GSON、FastJson的封装与解析
声明: 1.本帖只提供代码,不深入讲解原理.如果读者想要深入了解,那就不要在这个帖子上浪费时间了 2.客户端用的是Google官方的Volley访问服务器,具体了解Volley请戳 这里 3.本帖三种 ...
随机推荐
- 对JavaScript莫名的愤怒
很多时候,我都察觉JavaScript有一中描述性语言的特性,为了实现他的功能,在浏览器中完美的发挥作用,他就像是一个巨型的工厂工程模式,外挂了很多API和功能集,他们试图用完美的方案去解释所有必须的 ...
- eclispe 出现超内纯错误
刚开始以为只要修改tomcat的最大最小内存就可以,结果还是报错,后来才懂需要在eclipse.ini文件中修改 -Xms256m-Xmx512m的值改大些,增加虚拟机运行的内存空间 刚开始最小值只有 ...
- 返璞归真vc++之感言
本人自述,大专学历,感觉自己也属于好学型学生,历任班上学习委员3年有余,参与学校项目几多个,不知道不觉从11年毕业已有3个年头,3年来,不敢苟同自己的生活方式,奈何人生无奈..从刚开始的电子商务公司转 ...
- 单纯形法C++实现
作者:jostree 转载请注明出处 http://www.cnblogs.com/jostree/p/4156685.html 使用单纯型法来求解线性规划,输入单纯型法的松弛形式,是一个大矩阵,第一 ...
- mapper配置
一:查询 <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC &q ...
- python staticmethod classmethod
http://www.cnblogs.com/chenzehe/archive/2010/09/01/1814639.html classmethod:类方法staticmethod:静态方法 在py ...
- js替换字符串的所有示例代码
js如何替换字符串中所有. /** * 替换字符串中所有 * @param obj 原字符串 * @param str1 替换规则 * @param str2 替换成什么 * @return 替换后的 ...
- ofbiz进阶之实体引擎配置文件
The Open For Business Project: Entity Engine Configuration Guide 原文链接:http://ofbiz.apache.org/docs/e ...
- sql查找最小缺失值与重用被删除的键(转载)
转载自:http://blog.csdn.net/yanghua_kobe/article/details/6262550 在数据处理时,我们经常会使用一些“自增”的插入方式来处理数据.比如学生学号: ...
- SQL学习中(一)序列
序列可以理解数值序列生成器,通俗的说是按照已经设定的规则自动产生数据的方案对象.--SQL SERVER不支持 个人认为序列类似于SQLSERVER中的identity(1,1),可以用于在表中添加数 ...