HttpUrlConnection发起POST请求

 1 StringBuffer str=new StringBuffer();
 2             Map<String,Object> requestParamsMap = new HashMap<String, Object>();  
 3             requestParamsMap.put("type",0);//添加绑定参数
 4             Iterator it=requestParamsMap.entrySet().iterator();//获取迭代器
 5             while(it.hasNext()){
 6                 Map.Entry<String, Object> element=(Entry<String, Object>) it.next();
 7                 str.append(element.getKey());
 8                 str.append("=");
 9                 str.append(element.getValue());
10                 str.append("&");
11             }
12             if(str.length()>0)
13                 str.deleteCharAt(str.length()-1);//删除末尾多余的一个&
14              try {
15                  URL url=new java.net.URL(URLStr);
16                  URLConnection connection=url.openConnection();
17                  HttpURLConnection con=(HttpURLConnection)connection;
18                  con.setDoOutput(true);
19                  con.setRequestMethod("POST");
20                  PrintWriter writer =new PrintWriter(con.getOutputStream());
21                  writer.write(str.toString());
22                  writer.flush();
23                  writer.close();
24                  BufferedReader reader=new BufferedReader(new InputStreamReader(con.getInputStream()));
25                  String line=null;
26                  String result="";
27                  while((line=reader.readLine())!=null){
28                      result+=line;
29                  }
30                  System.out.println(result);
31              } catch (Exception e) {
32                  // TODO Auto-generated catch block
33                  e.printStackTrace();
34          }

和get请求类似,但是post请求时,相关参数是保存在 HTML HEADER中。所以必须要输出这个参数,并且读取服务器返回的数据。我们依然按照keyname=value的顺序将要输出的参数格式化为string。为了输出参数,需要通过con获取PrintWriter对象 writer,然后利用writer输出前面格式化的string。获取服务器返回的结果和get请求操作一样,不说了。

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。