前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Android网络访问Post请求的两种写法

Android网络访问Post请求的两种写法

作者头像
wust小吴
发布2019-07-08 15:33:35
3.4K0
发布2019-07-08 15:33:35
举报
文章被收录于专栏:风吹杨柳风吹杨柳

第一种:post参数自己构建

public String sendPost(String url, String param) { PrintWriter out = null;//网络请求对应的输出流,就是客户端把参数给服务器 ?叫输出, BufferedReader in = null; String result = ""; try { URL realUrl = new URL(url); // 打开和URL之间的连接 URLConnection conn = realUrl.openConnection(); // 设置通用的请求属性 conn.setRequestProperty("accept", "*/*"); conn.setRequestProperty("connection", "Keep-Alive"); conn.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)"); // 发送POST请求必须设置如下两行 conn.setDoOutput(true); conn.setDoInput(true); // 获取URLConnection对象对应的输出流 out = new PrintWriter(conn.getOutputStream()); // 发送请求参数 out.print(param); // flush输出流的缓冲 out.flush(); // 定义BufferedReader输入流来读取URL的响应 in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (Exception e) { return "send_fail"; } // 使用finally块来关闭输出流、输入流 finally { try { if (out != null) { out.close(); } if (in != null) { in.close(); } } catch (IOException ex) { ex.printStackTrace(); } } return result; }

方法的参数:param ? 类似于:&uid=15831&content=测试

使用的时候怎么用:

1.先构建参数

2.定义返回的数据类型,一般是json ? 最好是用数据类或者直接传递jsonArray

3.准备url ,然后调用这个方法就行了

第二种:post使用已经被Android弃用的BasicNameValuePair来进行生成

public String doPost(String url, ArrayList<BasicNameValuePair> data) { try { //UrlEncodedFormEntity这个类是用来把输入数据编码成合适的内容 //两个键值对,被UrlEncodedFormEntity实例编码后变为如下内容:param1=value1&param2=value2 UrlEncodedFormEntity entity = new UrlEncodedFormEntity(data, HTTP.UTF_8);//首先将参数设置为utf-8的形式, String result = "";//向服务器请求之后返回的数据结果 HttpClient httpClient = new DefaultHttpClient();//申明一个网络访问客户端 HttpPost post = new HttpPost(url);//post方式 post.setEntity(entity);//带上参数 HttpResponse httpResponse = httpClient.execute(post);//响应结果 if (httpResponse.getStatusLine().getStatusCode() == 200) {//如果是200 ?表示成功 result = EntityUtils.toString(httpResponse.getEntity());//把结果取出来 ?是一个STRING类型的 } return result; } catch (Exception e) { Log.i("post_exception", e.toString()); return null; } }

使用方法:

1.准备参数,需要申明一个BasicNameValuePair,然后是一个键一个值,放进去就可以了

2.定义返回的数据类型,一般是json ? 最好是用数据类或者直接传递jsonArray

3.准备url ,然后调用这个方法就行了

本文参与?腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2015年09月18日,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客?前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与?腾讯云自媒体同步曝光计划? ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 第一种:post参数自己构建
  • 使用的时候怎么用:
  • 第二种:post使用已经被Android弃用的BasicNameValuePair来进行生成
  • 使用方法:
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
http://www.vxiaotou.com