Java工具类_模拟HTTP POST请求
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请求的更多相关文章
- Java工具类_表结构自动生成对应的实体类、Mapper.xml文件、Dao类
import java.io.File; import java.io.FileWriter; import java.io.IOException; import java.io.PrintWrit ...
- Java工具类_随机生成任意长度的字符串【密码、验证码】
import java.util.Random; public class PasswordCreate { /** * 获得密码 * @param len 密码长度 * @return */ pub ...
- 获取全局上下文(getApplicationContext)_创建Shared Preference工具类_实现自动登录
获取全局上下文(getApplicationContext)_创建Shared Preference工具类_实现自动登录 ===========================获取全局上下文(getA ...
- HttpUtil工具类,发送Get/Post请求,支持Http和Https协议
HttpUtil工具类,发送Get/Post请求,支持Http和Https协议 使用用Httpclient封装的HttpUtil工具类,发送Get/Post请求 1. maven引入httpclien ...
- java工具类系列 (四.SerializationUtils)
java工具类系列 (四.SerializationUtils) SerializationUtils该类为序列化工具类,也是lang包下的工具,主要用于序列化操作 import java.io.Se ...
- Java工具类——通过配置XML验证Map
Java工具类--通过配置XML验证Map 背景 在JavaWeb项目中,接收前端过来的参数时通常是使用我们的实体类进行接收的.但是呢,我们不能去决定已经搭建好的框架是怎么样的,在我接触的框架中有一种 ...
- 排名前 16 的 Java 工具类
在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法按使用流行度排名,参考数据来源于Github上随机选取的5万个开源项目源码. 一. ...
- 排名前16的Java工具类
原文:https://www.jianshu.com/p/9e937d178203 在Java中,工具类定义了一组公共方法,这篇文章将介绍Java中使用最频繁及最通用的Java工具类.以下工具类.方法 ...
- 第一章 Java工具类目录
在这一系列博客中,主要是记录在实际开发中会常用的一些Java工具类,方便后续开发中使用. 以下的目录会随着后边具体工具类的添加而改变. 浮点数精确计算 第二章 Java浮点数精确计算 crc32将任意 ...
随机推荐
- 解决在sass中使用calc不能包含变量的问题。
今天写sass的时候,发现在sass中使用calc,如果calc中包含一个变量,不会产生效果,看代码: .app-inner { display: flex; height: calc(100% - ...
- 关于Java高并发的问题
前言: 对于我们开发的网站,如果网站的访问量非常大的话,那么我们就需要考虑相关的并发访问问题了.而并发问题是绝大部分的程序员头疼的问题, 为了更好的理解并发和同步,我们需要先明白两个重要的概念:同步和 ...
- bzoj3295 动态逆序对
Description 对于序列A,它的逆序对数定义为满足i<j,且Ai>Aj的数对(i,j)的个数.给1到n的一个排列,按照某种顺序依次删除m个元素,你的任务是在每次删除一个元素之前统计 ...
- innodb的锁、update单条记录的花费时间压测
观察innodb的锁时间,需要关注: mysqladmin extended-status -r -i 1 -uroot | grep "Innodb_row_lock_time" ...
- python中获取当前路径并添加到系统路径
import os import sys sys.path.append(os.getcwd())
- RBF神经网络和BP神经网络的关系
作者:李瞬生链接:https://www.zhihu.com/question/44328472/answer/128973724来源:知乎著作权归作者所有.商业转载请联系作者获得授权,非商业转载请注 ...
- 长沙雅礼中学集训-------------------day3
今天的收获还是蛮大的,终于体会了一波在知识的海洋中遨游的美滋滋的快感. T1:给你N个点的位置和他们的速度,这些点向一个方向移动,求前M次超越者的集合A和被超越者的集合B(集合为这些点的速度),以及从 ...
- C++多线程同步之事件(Event)
原文链接:http://blog.csdn.net/olansefengye1/article/details/53291074 一.事件(Event)原理解析 1.线程同步Event,主要用于线程间 ...
- move操作
move一个表到另外一个表空间时,索引不会跟着一起move,而且会失效.(LOB类型例外) 表move,我们分为: *普通表move *分区表move *LONG,LOB大字段类型move来进行测试和 ...
- python3中reduce()函数的使用方法示例
reduce() 函数会对参数序列中元素进行累积,下面这篇文章主要给大家介绍了关于python中reduce()函数的使用方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学 ...