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请求操作一样,不说了。

时间: 2024-10-25 16:11:13

HttpUrlConnection发起POST请求的相关文章

发起https请求并获取结果

/**     * 发起https请求并获取结果     *      * @param requestUrl     *            请求地址     * @param requestMethod     *            请求方式     * @param outputStr     *            请求数据     * @return     * @throws Exception     */    public static String MsgHttpsR

libcurl发起post请求时间延迟问题。except为空即可

最近在做团购酒店APP分享到qzone功能,使用libcurl访问qzone的分享cgi接口,酒店分享信息以POST方式传输,在测试的时候发现分享接口平均有2s的延迟,这延迟也太大了吧,于是乎问了空间的接口人,答曰:怎么可能,这个接口的平均调用时延是100-200ms,肯定是你的代码有问题.好吧,开始检查代码,使用strace -p跟踪系统调用,发现curl发送了两次请求,其中第一次请求的响应特别的慢,额,原来这个才是导致延迟的罪魁祸首,tcpdump之后发现curl发送的第一个请求包含一个Ex

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比

使用httpclient实现http链接池与使用HttpURLConnection发送http请求的方法与性能对比 在项目中需要使用http调用接口,实现了两套发送http请求的方法,一个是使用apache的httpclient提供的http链接池来发送http请求,另一个是使用java原生的HttpURLConnection来发送http请求,并对两者性能进行了对比. 使用httpclient中的链接池发送http请求 使用最新的4.5.2版httpclient进行实现.在maven中引入 <

用curl发起https请求

使用curl发起https请求 使用curl如果想发起的https请求正常的话有2种做法: 方法一.设定为不验证证书和host. 在执行curl_exec()之前.设置option $ch = curl_init(); ...... curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 方法二.设定一个正确的证书. 本地ssl判别证书太旧,导致链接报错ssl

C#的百度地图开发(一)发起HTTP请求

百度地图的开发文档中给出了很多的事例,而当用到具体的语言来开发时,又会有些差异.我是使用C#来开发的.在获取相应的数据时,需要通过URL传值,然后获取相应的返回值(这一点很多平台的开发都是如此:比如微信的企业号).所以我们第一步要解决的就是如何发起URL请求. 如果是在前端,我们可以很轻易的发起URL请求,就是在浏览器的地址栏中输入URL即可,那么在C#的后台要如何发起请求呢?来看下面的代码: [csharp] view plaincopy /// <summary> /// 向指定URL发起

HttpUrlConnection发送url请求(后台springmvc)

1.HttpURLConnection发送url请求 public class JavaRequest { private static final String BASE_URL = "http://localhost:8080/dsdemo/"; public static String userToken = null; public static String problemName = null; public static String sendPost(String su

接入支付宝支付接口(一):发起支付请求

一.前言 在接入支付宝接口之前,需要在支付宝官网进行应用注册和实名认证,地址不再贴出. 在此,贴出支付宝开放平台文档地址:https://docs.open.alipay.com/58/103585/ 在这个地址中,详细介绍了如何接入支付宝接口 二.发起请求 支付宝的签名方式等不做详细介绍,在开发文档中有详细说明,笔者建议:编码格式请使用UTF-8. 接下来的介绍中,主要贴出代码(代码仅供参考) 在贴出代码之前,首先大致了解一下如何发起支付请求: 第一步:组装阿里参数 该步骤组装的参数来自于商户

发起post请求

scrapy发起post请求的两种方式 一定要对start_requests方法进行重写 1.Request方法中给method属性复制成post 2.FormRequest()进行post请求的发送 方法1(不建议使用): import scrapy class PostexampleSpider(scrapy.Spider): name = 'postexample' # allowed_domains = ['www.baidu.com'] start_urls = ['https://w

使用 HttpRequester 更方便的发起 HTTP 请求

原文:使用 HttpRequester 更方便的发起 HTTP 请求 使用 HttpRequester 更方便的发起 HTTP 请求 Intro 一直感觉 .net 里面(这里主要说的是 .net framework 下)发送 HTTP 请求的方式用着不是特别好用,而且在 .net framework 里发送 HTTP 请求的方式有好几种,如:WebClient/WebRequest/HttpClient,于是自己封装了一个?HttpRequester WebClient 主要是用来下载,不能对