Java利用Http模拟表单提交
2015-08-27 10:56
525 查看
private static String sendPost(String url, NameValuePair[] params) {
HttpClient client = new HttpClient();
// 请求超时
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15000);
// 读取超时
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
// 模拟登录页面
PostMethod post = new PostMethod(url);
post.setRequestBody(params);
if (cookies != null && cookies.length > 0) {
client.getState().addCookies(cookies);
}
try {
client.executeMethod(post);
} catch (Exception e) {
e.printStackTrace();
}
if (post.getStatusCode() == 200) {
StringBuffer sbf = new StringBuffer();
BufferedReader reader = null;
try {
InputStream inputStream = post.getResponseBodyAsStream();
reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = reader.readLine()) != null) {
sbf.append(line);
}
// 查看 cookie 信息
cookies = client.getState().getCookies();
return sbf.toString();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
post.releaseConnection();
return null;
}
HttpClient client = new HttpClient();
// 请求超时
client.getParams().setParameter(CoreConnectionPNames.CONNECTION_TIMEOUT, 15000);
// 读取超时
client.getParams().setParameter(CoreConnectionPNames.SO_TIMEOUT, 30000);
// 模拟登录页面
PostMethod post = new PostMethod(url);
post.setRequestBody(params);
if (cookies != null && cookies.length > 0) {
client.getState().addCookies(cookies);
}
try {
client.executeMethod(post);
} catch (Exception e) {
e.printStackTrace();
}
if (post.getStatusCode() == 200) {
StringBuffer sbf = new StringBuffer();
BufferedReader reader = null;
try {
InputStream inputStream = post.getResponseBodyAsStream();
reader = new BufferedReader(new InputStreamReader(inputStream));
String line = null;
while ((line = reader.readLine()) != null) {
sbf.append(line);
}
// 查看 cookie 信息
cookies = client.getState().getCookies();
return sbf.toString();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (reader != null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
post.releaseConnection();
return null;
}
相关文章推荐
- 网络协议HTTP、TCP/IP、Socket
- 事件函数块的返回值https://msdn.microsoft.com论述
- 使用Volley加载网络图片
- Linux网络编程--自定义套接字描述符判定函数issockettype
- 收益最大
- 一次完整的HTTP请求所经历的7个步骤
- Socket 通信原理(Android客户端和服务器以TCP&&UDP方式互通)
- Android获取当前网络状态
- Android获取当前网络状态
- 开启android板子的adb网络连接
- TIdHTTPResponseInfo 中文乱码问题解决
- httpClenit的post出现乱码问题
- P2P,UDP和TCP穿透NAT
- 在Ubuntu下运行tinyhttpd及其测试例子
- 2015.7.9(POST、GET请求限制)
- CenOS安装httpie
- 深度学习概述:从感知机到深度网络
- Golang Http Server源码阅读
- 虚拟机安装REDHAT没有网卡ETH0的问题处理
- WCF - net.pipe vs. net.tcp vs. http Bindings