Android 通过http访问服务器
2013-07-21 18:35
429 查看
目前Android 与服务器交互有两种方式:1.Socket 2. Http ;
但由于Http的封装性以及性能比socket要好,所以推荐使用http方式和服务器交互;
通过http访问服务器有三种方法:1.post 2. get 3.或者上传文件
例子如下:
但由于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 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程
- Android通过HttpClient访问服务器的servlet
- Android---通过http访问服务器
- Android 通过http访问服务器
- Android 通过http访问服务器
- Android 通过HttpClient访问服务器获取XML
- Android 通过http访问服务器
- Android 客户端通过内置API(HttpClient) 访问 服务器(用Spring MVC 架构) 返回的json数据全过程
- Android端通过httpCilent访问Tomcat服务器servlet
- http接口加密《一》:移动应用中,通过在客户端对访问的url进行加密处理来保护服务器上的数据
- android操作通过http与服务器通信
- 通过URL,使用HttpURLConnection进行请求/响应,访问web服务器图片等资源。异常报错
- CentOS搭建SVN服务器,并通过Apache HTTP方式访问
- Linux(Centos6.5)下安装svn服务器,并通过http访问
- 通过web服务器访问MYSQL数据库,使其数据同步到android SQLite数据库
- android通过httpPost向服务器发送请求 .
- Android通过Apache HTTP访问HTTP资源
- android中的http通信---(3)通过get、post方式传数据给服务器
- android通过HttpURLConnection上传文件袋servlet服务器
- Android:使用HttpClient访问HTTP/HTTPS服务器