import java.io.ByteArrayOutputStream;
import java.io.DataOutputStream;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.URL;

public class HttpPostTest {

    public static void main(String[] args) throws Exception {

        //请求数据【加密】
        String netPoint = "JTNDJTNGeG1sK3ZQyUyRmh0dHBBcGklM0UlMEE=";

        //Xml或json格式  netPoint = "{ \"userName\": \"01404673\" }"; netPoint = "<userName>01404673</userName>";

        //请求地址[ 本地 ]
        String strurl = "http://127.0.0.1:8080/hop/order/getForwardConfirmToAccountCenter?app_key=1201&secret=927666f2";

        URL url = new URL(strurl);
        HttpURLConnection conn = (HttpURLConnection) url.openConnection();
        conn.setRequestMethod("POST");
        conn.setConnectTimeout(5 * 1000);//设置超时的时间
        conn.setDoInput(true);
        conn.setDoOutput(true);//如果通过post提交数据,必须设置允许对外输出数据
        conn.setRequestProperty("Content-Type", "text/xml; charset=UTF-8");
        conn.setRequestProperty("Content-Length", String.valueOf(netPoint.length()));
        conn.addRequestProperty("Authorization", "Basic ZWhhaWVyMjAxMTplaGFpZXImMmFiKihf");
        conn.connect();
        DataOutputStream out = new DataOutputStream(conn.getOutputStream());
        out.write(netPoint.getBytes("UTF-8"));//写入请求的字符串
        out.flush();
        out.close();
        //请求返回的状态
        if (conn.getResponseCode() == 200) {
            //请求返回的数据
            byte[] datas = readInputStream(conn.getInputStream());
            //转成字符串
            String responseMsg = new String(datas, "utf-8");
            System.out.println("返回数据:\n" + responseMsg);

			//将返回数据写入文件
            //            File dest = new File("D:\\abc.txt");

            //            InputStream is = new ByteArrayInputStream(responseMsg.getBytes());
            //            OutputStream os = new FileOutputStream(dest);

            //            byte[] flush = new byte[1024];
            //            int len = 0;
            //
            //            while (-1 != (len = is.read(flush))) {
            //                os.write(flush, 0, len);
            //            }
            //
            //            os.flush();
            //            os.close();
            //            is.close();

        } else {
            System.out.println("请求失败:\n code:" + conn.getResponseCode() + "\n msg:"
                               + conn.getResponseMessage());
        }
        //关闭连接
        conn.disconnect();
    }

    private static byte[] readInputStream(InputStream inStream) throws Exception {
        ByteArrayOutputStream outStream = new ByteArrayOutputStream();
        try {
            byte[] buffer = new byte[1024];
            int len = 0;
            while ((len = inStream.read(buffer)) != -1) {
                outStream.write(buffer, 0, len);
            }
            byte[] data = outStream.toByteArray();//二进制数据
            return data;
        } finally {
            outStream.close();
            inStream.close();
        }
    }

}

  

Java工具类_模拟HTTP POST请求的更多相关文章

  1. Java工具类_表结构自动生成对应的实体类、Mapper.xml文件、Dao类

    import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWrit ...

  2. Java工具类_随机生成任意长度的字符串【密码、验证码】

    import java.util.Random; public class PasswordCreate { /** * 获得密码 * @param len 密码长度 * @return */ pub ...

  3. 获取全局上下文(getApplicationContext)_创建Shared Preference工具类_实现自动登录

    获取全局上下文(getApplicationContext)_创建Shared Preference工具类_实现自动登录 ===========================获取全局上下文(getA ...

  4. HttpUtil工具类,发送Get/Post请求,支持Http和Https协议

    HttpUtil工具类,发送Get/Post请求,支持Http和Https协议 使用用Httpclient封装的HttpUtil工具类,发送Get/Post请求 1. maven引入httpclien ...

  5. java工具类系列 (四.SerializationUtils)

    java工具类系列 (四.SerializationUtils) SerializationUtils该类为序列化工具类,也是lang包下的工具,主要用于序列化操作 import java.io.Se ...

  6. Java工具类——通过配置XML验证Map

    Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...

  7. 排名前 16 的 Java 工具类

    在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...

  8. 排名前16的Java工具类

    原文:https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法 ...

  9. 第一章 Java工具类目录

    在这一系列博客中,主要是记录在实际开发中会常用的一些Java工具类,方便后续开发中使用. 以下的目录会随着后边具体工具类的添加而改变. 浮点数精确计算 第二章 Java浮点数精确计算 crc32将任意 ...

随机推荐

  1. bzoj4236 JOIJOI

    Description JOIOJI桑是JOI君的叔叔.“JOIOJI”这个名字是由“J.O.I”三个字母各两个构成的. 最近,JOIOJI桑有了一个孩子.JOIOJI桑想让自己孩子的名字和自己一样由 ...

  2. centos自带的dvd中的官方base源,丢失了可以复制下面的内容

    /etc/yum.repos.d/CentOS-Base.repo文件中的内容,同样适用于centos6 [base]name=CentOS-$releasever - Basemirrorlist= ...

  3. Unreal Engine 4 反射机制的实现

    转自:http://blog.csdn.net/noahzuo/article/details/51482255 反射机制 反射机制指的是程序可以在运行期间进行检测和修改自己状态的能力. UE4引擎使 ...

  4. Tornado 框架的使用

    Tornado tornado是一个轻量级python的web框架,他是非阻塞式的,而且速度非常快.得利于其 非阻塞的方式和对 epoll 的运用,Tornado 每秒可以处理数以千计的连接,这意味着 ...

  5. Github提交Spark代码

    记录下提交过程,易忘供查询用.内容源自田总的分享. 1)在github上fork一份最新的master代码 2)用社区代码库创建本地仓库 git clone https://github.com/ap ...

  6. mysql 更新(二)安装和基本管理

    03-MySql安装和基本管理   本节掌握内容: MySQL的介绍安装.启动 MySQL破解密码 MySQL中统一字符编码 MySQL是一个关系型数据库管理系统,由瑞典MySQL AB 公司开发,目 ...

  7. aix-syslog

    收集网络内路由器的日志信息,同时把本地日志信息与路由器信息分开. /etc/syslog.conf我写成: ## 本地日志处理 *.notice;*.err;*.warn<tab>;< ...

  8. 如何从编程的本质理解JVM内存模型

    如何从编程的本质理解JVM内存模型 一般聊JVM内存模型都是把图截出来,然后对着图,解释上面堆.栈之类的概念.这篇将分享下,如何从编程的本质上理解,JVM内存模型是什么样子,为什么是这个样子,不再死记 ...

  9. easyui datagrid列使用按钮的一些心得(转)

    http://blog.csdn.net/sskicgah/article/details/16939959 以前,用easyui的datagrid,有时候会用到一些操作选项,比如代码如下: $('# ...

  10. leetcode942

    public class Solution { public int[] DiStringMatch(string S) { var len = S.Length; ; var max = len; ...