博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
模拟post提交,保持session不变
阅读量:6802 次
发布时间:2019-06-26

本文共 1734 字,大约阅读时间需要 5 分钟。

public static String sendPost(String url, String param) {

PrintWriter out = null;
BufferedReader in = null;
String result = "";
try {
URL realUrl = new URL(url);
// 打开和URL之间的连接
URLConnection conn = realUrl.openConnection();

// 第二次发送post,设置cookie与第一次获取到的值相同

if (cookieStore != null) {
conn.setRequestProperty("Cookie", "JSESSIONID="
+ cookieStore.getCookies().get(0).getValue());
}

// 设置通用的请求属性

conn.setRequestProperty("accept", "*/*");
conn.setRequestProperty("connection", "Keep-Alive");
conn.setRequestProperty("user-agent",
"Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

// 发送POST请求必须设置如下两行

conn.setDoOutput(true);

conn.setDoInput(true);
// 获取URLConnection对象对应的输出流

out = new PrintWriter(conn.getOutputStream());

// 发送请求参数

out.print(param);

// flush输出流的缓冲

out.flush();

// 定义BufferedReader输入流来读取URL的响应

in = new BufferedReader(

new InputStreamReader(conn.getInputStream()));

// 第一次登陆,设置cookie

if (cookieStore == null) {
String cookieValue = conn.getHeaderField("Set-Cookie");

String sessionId = cookieValue.substring(0,

cookieValue.indexOf(";"));
// System.out.println("cookie value:" + sessionId);

cookieStore = new BasicCookieStore();

BasicClientCookie cookie = new BasicClientCookie("JSESSIONID",
sessionId.split("=")[1]);
cookie.setVersion(0);
cookie.setDomain("domain");
cookie.setPath("/xxx");
cookieStore.addCookie(cookie);
}

String line;

while ((line = in.readLine()) != null) {
result += line;
}
} catch (Exception e) {
System.out.println("发送 POST 请求出现异常!" + e);
}
// 使用finally块来关闭输出流、输入流

finally {

try {
if (out != null) {
out.close();
}
if (in != null) {
in.close();
}
} catch (IOException ex) {
System.out.println("发送 POST 请求出现异常!" + ex);
}
}
return result;
}

转载于:https://www.cnblogs.com/liocean/p/9319333.html

你可能感兴趣的文章
Linux 链接详解----静态链接实例分析
查看>>
Centos7快速部署CloudStack服务器
查看>>
搭建app自动化测试环境(一)
查看>>
...
查看>>
PPII打不开 更改I.bat
查看>>
开始学习了
查看>>
Javascript 控制 让输入框不能输入 数字
查看>>
[POJ] 食物链
查看>>
C/C++ extended python时一种常见的内存泄漏
查看>>
swift简介
查看>>
六度空间
查看>>
【分享】TCP 的那些事儿
查看>>
hdoj1205--吃糖果(鸽巢原理)
查看>>
SRM708 div1 PalindromicSubseq(动态规划+容斥原理)
查看>>
一些开源项目
查看>>
javascript 异步问题解决 Promise
查看>>
eclipse中mysql java驱动的安装
查看>>
期望文件系统格式在“1”到“3”之间;发现格式“4”
查看>>
Ajax笔记1
查看>>
[置顶] openHAB 体系结构与编程模型 (1) --- 术语
查看>>