HttpClient中带参数的get请求
直接代码:
package cn.itcast.crawler.test;import org.apache.http.HttpEntity;import org.apache.http.client.methods.CloseableHttpResponse;import org.apache.http.client.methods.HttpGet;import org.apache.http.client.utils.URIBuilder;import org.apache.http.impl.client.CloseableHttpClient;import org.apache.http.impl.client.HttpClients;import org.apache.http.util.EntityUtils;import java.io.IOException;import java.net.URISyntaxException;public class HttpGetParamTest { public static void main(String[] args) throws Exception { //1.创建HttpClient对象 CloseableHttpClient httpClient= HttpClients.createDefault(); //要求:设置请求的地址是:http://yun.itheima.com/search?keys=java //创建URLBuilder URIBuilder uriBuilder=new URIBuilder("http://yun.itheima.com/search"); //设置参数 uriBuilder.setParameter("keys","java"); //2.创建HttpGet对象,设置URL地址 HttpGet httpGet=new HttpGet(uriBuilder.build()); System.out.println("发送请求的信息:"+httpGet); //使用httpClient发起响应获取repsonse CloseableHttpResponse response=null; try { response=httpClient.execute(httpGet); //4.解析响应,获取数据 //判断状态码是否是200 if(response.getStatusLine().getStatusCode()==200){ HttpEntity httpEntity=response.getEntity(); String content=EntityUtils.toString(httpEntity,"utf8"); System.out.println(content.length()); } } catch (IOException e) { e.printStackTrace(); }finally { try { response.close(); } catch (IOException e) { e.printStackTrace(); } try { httpClient.close(); } catch (IOException e) { e.printStackTrace(); } } }}执行结果:
有上面的结果可以知道,发送的是一个get请求,并且是参数的;
//创建URLBuilder URIBuilder uriBuilder=new URIBuilder("http://yun.itheima.com/search"); //设置参数 uriBuilder.setParameter("keys","java");上面两行代码是带参数的主要代码,这是带一个参数,当我们需要带两个或两个以上的参数时,代码如下:
uriBuilder.setParameter("keys","java").setParameter("","");在后面直接添加就可以了