Android使用http协议的GET和POST方法!!!
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Android使用http协议的GET和POST方法!!!,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含3169字,纯文字阅读大概需要5分钟。
内容图文
前几天刚入职,研究了一下android里面的http协议的get和post请求:
Android里面有HttpClient可以用来访问网页的接口,下面来介绍HttpClient接口的使用,
1.GET:
/** * GET请求 * @param path 网页路径 * @param params 参数 * @param values 参数的值 * @return JSON */ public static String doGet(String path,String[] params,String[] values){ try { HttpClient httpClient = new DefaultHttpClient();//创建httpClient对象 String url = URLParamUtil.praiseGetParams(path, params, values);//组合网页参数 HttpGet httpGet = new HttpGet(url);//创建GET对象 HttpResponse httpResponse = httpClient.execute(httpGet);//开始访问,用HttpResponse来收返回的数据 //如果连接成功,读取数据 if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ return readData(httpResponse.getEntity().getContent());//通过HttpResponse来获得对应的输出流 } } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 解析URL * @param path 路径 * @param params 参数 * @param values 值 * @return URL */ public static String praiseGetParams(String path,String[] params,String[] values){ String url = ""; //如果params和values为空就返回path if(params==null||values==null){ url = path; } //如果参数和值的大小不同,抛出异常 else if(params.length != values.length){ try { throw new Exception("参数异常"); } catch (Exception e) { e.printStackTrace(); } } //正常解析情况 else{ url = path + "?"; for(int i=0;i<params.length;i++){ url += (params[i] + "=" + values[i] + "&"); } //截取最后的一个字符"&" url = url.substring(0, url.length()-1); } return url; } /** * 通过字节输出流读取数据 * @param is * @return JSON */ public static String readData(InputStream is){ BufferedReader br = new BufferedReader(new InputStreamReader(is));//将字节输出流转换为字符输出流 StringBuffer sb = new StringBuffer(); String line = ""; try { line = br.readLine(); //循环读取数据 while(line != null){ sb.append(line + "\n"); line = br.readLine(); } } catch (IOException e) { e.printStackTrace(); } return sb.toString(); }
2.POST
/** * POST请求 * @param path 网页路径 * @param params 参数 * @param values 参数的值 * @return JSON */ public static String doPost(String path,String[] params,String[] values){ try { HttpClient httpClient = new DefaultHttpClient(); HttpPost httpPost = new HttpPost(path); //创建POST对象 //创建参数 List<NameValuePair> pairs = URLParamUtil.praisePostParams(params, values); HttpEntity entity = new UrlEncodedFormEntity(pairs,"UTF-8"); httpPost.setEntity(entity); HttpResponse httpResponse = httpClient.execute(httpPost); // 请求成功开始读取数据 if(httpResponse.getStatusLine().getStatusCode() == HttpStatus.SC_OK){ return readData(httpResponse.getEntity().getContent()); } } catch (UnsupportedEncodingException e) { e.printStackTrace(); } catch (ClientProtocolException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } return null; } /** * 解析POST参数 * @return pairs */ public static List<NameValuePair> praisePostParams(String[] params,String[] values){ List<NameValuePair> pairs = new ArrayList<NameValuePair>(); NameValuePair pair = null; //遍历数组创建参数 for(int i=0;i<params.length;i++){ pair = new BasicNameValuePair(params[i], values[i]); pairs.add(pair); } return pairs; }
注意:这些操作必须在线程中运行
版权声明:本文为博主原创文章,未经博主允许不得转载。
原文:http://blog.csdn.net/qq_22605739/article/details/47081661
内容总结
以上是互联网集市为您收集整理的Android使用http协议的GET和POST方法!!!全部内容,希望文章能够帮你解决Android使用http协议的GET和POST方法!!!所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。