java使用httpclient模拟post请求和get请求示例
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;import org.apache.commons.httpclient.DefaultHttpMethodRetryHandler;
import org.apache.commons.httpclient.Header;
import org.apache.commons.httpclient.HttpClient;
import org.apache.commons.httpclient.HttpException;
import org.apache.commons.httpclient.HttpStatus;
import org.apache.commons.httpclient.NameValuePair;
import org.apache.commons.httpclient.cookie.CookiePolicy;
import org.apache.commons.httpclient.methods.GetMethod;
import org.apache.commons.httpclient.methods.PostMethod;
import org.apache.commons.httpclient.params.HttpMethodParams;public class TestHttpClient {
public static void main(String[] args) {
// TODO Auto-generated method stub
//定义httpClient的实例
HttpClient httpclient = new HttpClient();
//创建get方法的实例
GetMethod getMethod = new GetMethod("http://jb51.net");
//使用系统提供的默认恢复策略
// getMethod.getParams().setParameter(HttpMethodParams.RETRY_HANDLER, new DefaultHttpMethodRetryHandler());
//创建post方法实例
PostMethod postMethod = new UTF8PostMethod("http://jb51.net");
//
// //填入各个表单域的值
// NameValuePair[] data = {new NameValuePair("user_name", "user_name"),new NameValuePair("password","password")};
//
// //将表单的值放入到post方法中
// postMethod.setRequestBody(data);
//
// postMethod.getParams().setParameter(
// "http.protocol.cookie-policy",CookiePolicy.BROWSER_COMPATIBILITY);
// postMethod.setRequestHeader("Referer", "http://jb51.net");
try{
//执行GET方法
// int statusCode = httpclient.executeMethod(getMethod);//执行post方法
int statusCode = httpclient.executeMethod(postMethod);
if(statusCode == HttpStatus.SC_MOVED_TEMPORARILY){
Header locationHeader = postMethod.getResponseHeader("Location");
String location = null;
if(locationHeader != null){
location = locationHeader.getValue();
}
postMethod = new PostMethod(location);
postMethod.setRequestHeader("Referer", "http://jb51.net/login");
NameValuePair[] data1 = {new NameValuePair("user_name", "user_name"),new NameValuePair("password","password")};
postMethod.setRequestBody(data1);
postMethod.getParams().setParameter(
"http.protocol.cookie-policy",CookiePolicy.BROWSER_COMPATIBILITY);
int statusCode1 = httpclient.executeMethod(postMethod);
if(statusCode1 != HttpStatus.SC_OK){
System.out.println("Method is wrong " + postMethod.getStatusLine());
}
}
if(statusCode != HttpStatus.SC_OK){
System.out.println("Method is wrong " + postMethod.getStatusLine());
}
InputStream responseBody = postMethod.getResponseBodyAsStream();
BufferedReader reader = new BufferedReader(new InputStreamReader(responseBody,"utf-8"));
String line = reader.readLine();
while(line != null){
System.out.println(new String(line.getBytes()));
line = reader.readLine();
}
}
catch (HttpException e) {
// TODO: handle exception
System.out.println("Please check your provided http address!");
e.printStackTrace();
}catch (IOException e) {
// TODO: handle exception
System.out.println("the line is wrong!");
e.printStackTrace();
}finally{
getMethod.releaseConnection();//释放链接
postMethod.releaseConnection();
}
}
//Inner class for UTF-8 support
public static class UTF8PostMethod extends PostMethod{
public UTF8PostMethod(String url){
super(url);
}
@Override
public String getRequestCharSet() {
//return super.getRequestCharSet();
return "UTF-8";
}
}}
您可能感兴趣的文章:
- Java如何实现URL带请求参数(get/post)及得到get和post请求url和参数列表的方法
- java使用httpclient发送post请求示例
- JAVA利用HttpClient进行POST请求(HTTPS)实例
- java发送get请求和post请求示例
- java网络编程中向指定URL发送GET POST请求示例
- java发送http的get、post请求实现代码
- java通过HttpServletRequest获取post请求中的body内容的方法
- java实现http的Post、Get、代理访问请求
- java模拟http的Get/Post请求,并设置ip与port代理的方法
- java使用common-httpclient包实现post请求方法示例
- java使用httpclient模拟post请求和get请求示例
- java使用HttpURLConnection和HttpClient分别模拟get和post请求以及操作cookies
- Java:使用HttpClient进行POST和GET请求以及文件上传和下载
- java使用httpclient封装post请求和get的请求
- Java 中使用 HttpClient 发送 get、post 请求的方法
- 使用java模拟Get与Post请求
- Java:使用HttpClient进行POST和GET请求以及文件上传和下载
- java使用httpclient封装post请求和get的请求
- java使用httpclient发送post请求示例
- Java:使用HttpClient进行POST和GET请求以及文件上传和下载
- 【末世旅行之Java】HttpClient工具类,包含POST和GET请求,使用了连接池和代理
- java使用httpclient封装post请求和get的请求
- JAVA-用HttpClient来模拟浏览器GET,POST
- Java模拟HTTP的Get和Post请求(增强)
- Java 使用 URLConnection 模拟 Http Get和Post 提交
- 使用Java发送POST、GET请求
- java中使用scoket模拟http post请求发送图片或文件
- 使用Java发送GET、POST请求
- JAVA-用HttpClient来模拟浏览器GET,POST
- 使用java程序模拟页面发送http的post请求