httpclient-4.1.1.jar
httpcore-4.2.jar
commons-logging-1.1.jar
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.apache.http.HttpResponse;
import org.apache.http.client.ClientProtocolException;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.message.BasicNameValuePair;
import org.apache.http.protocol.HTTP;
import org.apache.http.util.EntityUtils;
public final class TestHttpPost {
/**
* 执行一个HTTP GET请求,返回请求响应的HTML
*
* @param url
* 请求的URL地址
* @param queryString
* 请求的查询参数,可以为null
* @return 返回请求响应的HTML
*/
public static String doGet(String url, String name, String queryString) {
String strResult = null;
try {//转码
name = URLEncoder.encode(name, "UTF-8");
queryString = URLEncoder.encode(queryString, "UTF-8");
} catch (UnsupportedEncodingException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String uriAPI = "http://127.0.0.1/html4/login_mobile.php?"
+ name
+ "="
+ queryString;
DefaultHttpClient client = new DefaultHttpClient();
HttpGet httpGet = new HttpGet(uriAPI);
HttpResponse httpResponse;
try {
httpResponse = client.execute(httpGet);
if (httpResponse.getStatusLine().getStatusCode() == 200) {
// 第3步:使用getEntity方法获得返回结果
strResult = EntityUtils.toString(httpResponse.getEntity());
// 去掉返回结果中的"\r"字符,
}
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
return strResult;
}
/**
* 执行一个HTTP POST请求,返回请求响应的HTML
*
* @param url
* 请求的URL地址
* @param params
* 请求的查询参数,可以为null
* @return 返回请求响应的HTML
* @throws IOException
* @throws IllegalStateException
*/
public static String doPost(String url, Map<String, String> params)
throws IllegalStateException, IOException {
String strResult = "";
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpPost post = new HttpPost(url);
List<BasicNameValuePair> postData = new ArrayList<BasicNameValuePair>();
for (Map.Entry<String, String> entry : params.entrySet()) {
postData.add(new BasicNameValuePair(entry.getKey(), entry
.getValue()));
System.out.print(entry.getValue());
}
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(postData,HTTP.UTF_8);//过时了?
post.setEntity(entity);
HttpResponse response = httpClient.execute(post);
// 若状态码为200 ok
if (response.getStatusLine().getStatusCode() == 200) {
// 取出回应字串
strResult = EntityUtils.toString(response.getEntity());
}
return strResult;
}
public static void main(String[] args) throws IllegalStateException,
IOException {
HashMap<String, String> user = new HashMap<String, String>();
user.put("username", "admin");
user.put("password", "123");
String post = doPost("http://127.0.0.1/html4/login_mobile.php", user);
String get = doGet("http://127.0.0.1/html4/login_mobile.php", "name",
"admin");
System.out.println("Post:" + post);
System.out.println("Get:" + get);
}
}