HttpURLConnection对象

/***
* 发起post请求,传输xml数据
* @param strUrl 请求地址
* @param xml 发送数据
* @return string 对方服务器返回数据
*/
public static String PostByHttpURLConnection(String strUrl, String xml) {
  HttpURLConnection conn;
  try {
    URL url = new URL(strUrl);
    conn = (HttpURLConnection) url.openConnection();
    // 设置是否从httpUrlConnection读入,默认情况下是true;
    conn.setDoInput(true);
    // 设置是否向httpUrlConnection输出,因为这个是post请求,参数要放在http正文内,因此需要设为true, 默认情况下是false;
    conn.setDoOutput(true);
    // 设定请求的方法为"POST",默认是GET
    conn.setRequestMethod("POST");
    //设置超时
    conn.setConnectTimeout(3000);
    conn.setReadTimeout(4000);
    // Post 请求不能使用缓存
    conn.setUseCaches(false);
    conn.setInstanceFollowRedirects(true);
    // 设定传送的内容类型是可序列化的java对象
    conn.setRequestProperty("Content-Type","text/xml");
    conn.setRequestProperty("Pragma:", "no-cache");
    conn.setRequestProperty("Cache-Control", "no-cache");
    conn.setRequestProperty("charset", "utf-8");     OutputStreamWriter out = new OutputStreamWriter(conn.getOutputStream());
    out.write(new String(xml.getBytes("utf-8")));
    out.flush();
    out.close();     BufferedReader br = new BufferedReader(new InputStreamReader(conn.getInputStream()));
    String line = "";
    StringBuilder sb = new StringBuilder();
    for (line = br.readLine(); line != null; line = br.readLine()) {
      //System.out.println(line);
      sb.append(line);
    }
    return sb.toString();
  } catch (IOException ex) {
    ex.printStackTrace();
    return "error";
  }
}

发起post、get请求的更多相关文章

  1. Qt发起Http/Https请求

    1. BurpSuite抓包 1.1 设置代理 burpsuite代理设置 浏览器代理设置(chrome),其他浏览器同理. 地址栏输入 chrome://settings/, 打开代理设置 设置代理 ...

  2. python requests 发起http POST 请求

    python requests 发起http POST 请求,带参数,带请求头: #!/usr/bin/env python # -*- coding: utf-8 -*- import reques ...

  3. Node.js系列——(2)发起get/post请求

    服务器与浏览器的交互主要方式有get/post请求. 下面,我们来看一下node.js发起get/post请求. 1.get 由于get请求的参数在url后面,所以相对比较简单.node.js中的ur ...

  4. angularJS发起$http.post请求后台收不到数据解决方案

    AngularJS发起$http.post请求 代码如下: $http({ method:'post', url:'post.php', data:{name:"aaa",id:1 ...

  5. 发起http(s)请求

    发起http(s)请求我这里主要列举了3种方式: 一.命令行的方式 二.通过工具 三.通过代码 一.命令行的方式 1. curl  curl官网: https://curl.haxx.se/downl ...

  6. 关于在PHP中当一个请求未完成时,再发起另一个请求被阻塞的问题

    最近做项目的时候遇到个问题,就是做阿里云oss大文件上传进度条显示,因为要实时查询上传分片进度,所以在上传的同时必须要再发起查询的请求,但是一直都是所有分片上传完成后查询的请求才执行,刚开始以为是阿里 ...

  7. 微信 创建自定义菜单 向微信发起的post请求

    微信 创建自定义菜单 向微信发起的post请求 Map<String, Object> res = new HashMap<String, Object>(); try { S ...

  8. curl如何发起DELETE/PUT请求

    curl如何发起DELETE/PUT请求 DELETE: curl_setopt($ch, CURLOPT_CUSTOMREQUEST, 'DELETE'); PUT: curl_setopt($ch ...

  9. 一比一还原axios源码(一)—— 发起第一个请求

    上一篇文章,我们简单介绍了XMLHttpRequest及其他可以发起AJAX请求的API,那部分大家有兴趣可以自己去扩展学习.另外,简单介绍了怎么去读以及我会怎么写这个系列的文章,那么下面就开始真正的 ...

  10. 为什么axios请求接口会发起两次请求

    之前在使用axios发现每次调用接口都会有两个请求,第一个请求时option请求,而且看不到请求参数,当时也没注意,只当做是做了一次预请求,判断接口是否通畅,但是最近发现并不是那么回事. 首先我们知道 ...

随机推荐

  1. Linux命令学习总结:chage

    命令简介: 该命令用于密码时效管理.它可以修改账号和密码的有效期.对于chage命令的描述如下所示: The chage command changes the number of days betw ...

  2. 1 张图秒懂 Nova 16 种操作 - 每天5分钟玩转 OpenStack(44)

    前面我们讨论了 Instance 的若干操作,有的操作功能比较类似,也有各自的适用场景,现在是时候系统地总结一下了. 如上图所示,我们把对 Instance 的管理按运维工作的场景分为两类:常规操作和 ...

  3. Linux常用的命令以及一些常见的问题

    常用的linux 命令   1查看Linux版本 1.1 查看linux的内核版本 uname -r 或者uname -a 1.2 查看linux的具体版本号 cat /proc/version 1. ...

  4. shell数值运算与运算符

  5. Ubuntu下的生活--安装

    概要 整个安装过程是通过离线包安装,而非在线安装. 目录 JDK安装与配置 Eclipse安装与配置 Apache安装与配置 MySQL的安装 JDK安装与配置 版本:jdk-7u71-linux-i ...

  6. 去掉windows8.1鸡肋的开始按钮

    无开始按钮了,win8.1的 开始按钮反而非常鸡肋.. 可以使用我分享的链接下载startisgone: http://download.csdn.net/detail/wangallan/89728 ...

  7. Windows 设置Mongodb

    安装MongoDB 将解压所得的bin文件夹内文件部署于C:\mongodb\bin 建立数据库文件夹 C:\mongodb\data\db 准备以下内容的配置文件mongodb.cfg dbpath ...

  8. centos 6.6 使用tomcat6部署solr5.3.1

    Solr现在是一个独立的服务器. 从Solr5.0开始,Solr不再发布为在任何Servlet容器中部署的“war”Web应用程序包(Web Application Archive).网上关于solr ...

  9. monkeyrunner之坐标或控件ID获取方法(六)

    Monkeyrunner的环境已经搭建完成,现在对Monkeyrunner做一个简介. Monkeyrunner工具提供了一套API让用户/测试人员来调用,调用这些api可以控制一个Android设备 ...

  10. 遍历List集合,删除符合条件的元素

    List集合的遍历有三种方式:增强for循环,普通for循环,Iterator迭代器遍历 如果只是对集合进行遍历,以上三种循环都可正常遍历: (1)增强For循环遍历List集合 List<St ...