Android使用http协议的GET和POST方法!!!

前几天刚入职,研究了一下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为空就返回pathif(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;}

注意:这些操作必须在线程中运行

版权声明:本文为博主原创文章,,未经博主允许不得转载。

孤单寂寞与被遗弃感是最可怕的贫穷

Android使用http协议的GET和POST方法!!!

相关文章:

你感兴趣的文章:

标签云: