Java网络通信之HttpClient

来源:互联网 发布:网络测试与故障诊断 编辑:程序博客网 时间:2024/05/16 00:57

这里我用的org.apache的包,closeableHttpClient是实现了HttpClient接口的子类。服务器需要自己去搭建。下个tomcat搭建服务器吧

一.Post方式

import org.apache.http.NameValuePair;
import org.apache.http.client.entity.UrlEncodedFormEntity;
import org.apache.http.client.methods.CloseableHttpResponse;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.client.methods.HttpPost;
import org.apache.http.impl.client.CloseableHttpClient;
import org.apache.http.impl.client.HttpClients;
import org.apache.http.message.BasicNameValuePair;

import java.io.*;
import java.util.ArrayList;
import java.util.List;

/**
* Created by Administrator on 2016/7/26.
*/
public class HttpTestDemo {
public static void main(String[] args) throws IOException {
// get();
post();
}

/** * post请求 */private static void post() throws IOException {    CloseableHttpClient mCloseableHttpClient= HttpClients.createDefault();//创建默认的客户端 相当于UrlConnection 里面的URL    HttpPost mHttpPost = new HttpPost("http://localhost:8080/day14servletdemo/DServlet");//创建post请求的封装类    List<NameValuePair> mList = new ArrayList<>();//创建存放参数的集合    mList.add(new BasicNameValuePair("name","gdsgsdf"));//添加参数    mList.add(new BasicNameValuePair("password","fgdsgdsfg"));    mHttpPost.setEntity(new UrlEncodedFormEntity(mList));//使用url编码的参数 ,里面就是把键值对取出来然后拼接成post请求需要的格式    //正式请求    CloseableHttpResponse mCloseableHttpResponse =mCloseableHttpClient.execute(mHttpPost);//连接获取返回的数据    int code= mCloseableHttpResponse.getStatusLine().getStatusCode();//获取错误码    if (code==200){        //获取数据        InputStream mInputStream= mCloseableHttpResponse.getEntity().getContent();        BufferedReader mBufferedReader= new BufferedReader(new InputStreamReader(mInputStream));//包装一个字符流        String line = null;        while ((line=mBufferedReader.readLine())!=null){//读流            System.out.println(line);//输出结果        }    }}
##二.Get方式

/**
* 使用httpclient 的get方式请求网络
* 网络请求来说 : 主机名(访问地址) 参数 事先设置好,然后通过某种方式会发起请求
*/
private static void get() {
try {
CloseableHttpClient mCloseableHttpClient= HttpClients.createDefault();//创建默认的客户端 相当于UrlConnection 里面的URL
HttpGet mHttpGet = new HttpGet(“http://localhost:8080/day14servletdemo/DServlet?name=gdsgsdf&password=gdsfgdg&sex=0&habit=smoke&habit=drink&habit=tangtou&edu=01&desc=gdfsgdsfgdg“);
CloseableHttpResponse mCloseableHttpResponse= mCloseableHttpClient.execute(mHttpGet);//发起get请求,并且获取返回的数据
if (mCloseableHttpResponse.getStatusLine().getStatusCode()== 200){//如果返回的错误码(状态码)为200 代表响应成功 返回数据
//获取数据
InputStream mInputStream= mCloseableHttpResponse.getEntity().getContent();
BufferedReader mBufferedReader= new BufferedReader(new InputStreamReader(mInputStream));//包装一个字符流
String line = null;
while ((line=mBufferedReader.readLine())!=null){//读流
System.out.println(line);//输出结果
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
“`

0 0