上一篇文章小沃给大家介绍了一下使用eclipse发送post请求的方法,这一节课小沃要写一写如何通过java发送post请求。
这里我们需要用httpclient.jar这个类,使用gradle下载这个类的方法这里就不详述了。
下面我们讲讲具体实现方法:
一、new一个URL
URL url = new URL(str_url);其中个str_url就是我们要发送post请求的url地址。
二、创建一个HttpURLConnection对象
这里我们直接使用上一步创建的url来实现,HttpURLConnection conn = (HttpURLConnection) url.openConnection();
三、设置相关的参数
conn.setDoOutput(true);//设置数据发送权限允许
conn.setDoInput(true);//设置数据接收权限允许
conn.setRequestMethod("POST");//设置传参模式为post
四、建立真正的连接
这里比较简单,一句话即可。
conn.connect();
五、创建连接的输入输出流
OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8");
BufferedReader in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
至此,所有的通信前期准备工作就全部完成了,下一步所需要的就是写入真正的数据了。
六、写入所需要发送的post命令
这里需要先准本数据,post请求的参数格式需要用“=”与“&”连接组合。
out.write("m=Index&c=index&a=index");
out.flush();
七、接收返回来的数据
String line;
while ((line = in.readLine()) != null) {
result += line;
}
剩下的就只剩下解析以及处理了。
下面是小沃写的一段完整的程序代码:
private String postsubmit(String str_url, String data) { OutputStreamWriter out = null; BufferedReader in = null; String result = ""; try { URL url = new URL(str_url); HttpURLConnection conn = (HttpURLConnection) url.openConnection(); conn.setDoOutput(true); conn.setRequestMethod("POST"); conn.connect(); out = new OutputStreamWriter(conn.getOutputStream(), "UTF-8"); out.write(data); out.flush(); in = new BufferedReader(new InputStreamReader(conn.getInputStream())); String line; while ((line = in.readLine()) != null) { result += line; } } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); result = ""; } return result; }