/*
* 演示通过HttpClient get请求的方式获取服务器的返回数据
*/
public class HttpClientDemo {
public static void main(String[] args) throws ClientProtocolException, IOException {
String path="http://10.0.184.105:58080/ServletDemo4/LoginServlet?username=admin&password=admin";
//1.创建客户端访问服务器的httpclient对象 打开浏览器
HttpClient httpclient=new DefaultHttpClient();
//2.以请求的连接地址创建get请求对象 浏览器中输入网址
HttpGet httpget=new HttpGet(path);
//3.向服务器端发送请求 并且获取响应对象 浏览器中输入网址点击回车
HttpResponse response=httpclient.execute(httpget);
//4.获取响应对象中的响应码
StatusLine statusLine=response.getStatusLine();//获取请求对象中的响应行对象
int responseCode=statusLine.getStatusCode();//从状态行中获取状态码
if(responseCode==200){
//5.获取HttpEntity消息载体对象 可以接收和发送消息
HttpEntity entity=response.getEntity();
//EntityUtils中的toString()方法转换服务器的响应数据
String str=EntityUtils.toString(entity, "utf-8");
System.out.println("服务器的响应是:"+str);
// //6.从消息载体对象中获取操作的读取流对象
// InputStream input=entity.getContent();
// BufferedReader br=new BufferedReader(new InputStreamReader(input));
// String str=br.readLine();
// String result=new String(str.getBytes("gbk"), "utf-8");
// System.out.println("服务器的响应是:"+result);
// br.close();
// input.close();
}else{
System.out.println("响应失败!");
}
}
}
/*
* 演示HttpClient使用Post提交方式提交数据
* <form action="" method="post">
* <input type="text" name="username" value="输入值">
* <input type="password" name="password" value="输入值">
* </form>
*
* username=输入值 password=输入值
*/
public class HttpClientDemo4 {
public static void main(String[] args) throws ClientProtocolException, IOException {
String baseUrl="http://10.0.184.105:58080/ServletDemo4/LoginServlet";//username=? password=?
HttpClient httpclient=new DefaultHttpClient();
//以请求的url地址创建httppost请求对象
HttpPost httppost=new HttpPost(baseUrl);
//NameValuePair 表示以类的形式保存提交的键值对
NameValuePair pair1=new BasicNameValuePair("username", "ad");
NameValuePair pair2=new BasicNameValuePair("password", "admin");
//集合的目的就是存储需要向服务器提交的key-value对的集合
List<NameValuePair> listPair=new ArrayList<NameValuePair>();
listPair.add(pair1);
listPair.add(pair2);
//HttpEntity 封装消息的对象 可以发送和接受服务器的消息 可以通过客户端请求或者是服务器端的响应获取其对象
HttpEntity entity=new UrlEncodedFormEntity(listPair);//创建httpEntity对象
httppost.setEntity(entity);//将发送消息的载体对象封装到httppost对象中
HttpResponse response=httpclient.execute(httppost);
int responseCode=response.getStatusLine().getStatusCode();
if(responseCode==200){
//得到服务器响应的消息对象
HttpEntity httpentity=response.getEntity();
System.out.println("服务器响应结果是:"+EntityUtils.toString(httpentity, "utf-8"));
}else{
System.out.println("响应失败!");
}
}
}