HttpClient

HttpClient 是 Apache Jakarta Common 下的子项目,用来提供高效的、最新的、功能丰富的支持 HTTP 协议的客户端编程工具包,

并且它支持 HTTP 协议最新的版本和建议。

使用httpClient执行get请求<url不带参的>

import
org.apache.http.HttpEntity;

import
org.apache.http.client.methods.CloseableHttpResponse;

import
org.apache.http.client.methods.HttpGet;

import
org.apache.http.impl.client.CloseableHttpClient;

import
org.apache.http.impl.client.HttpClients;

import
org.apache.http.util.EntityUtils;

import org.junit.Test;

public class HttpClient {

@Test

public void doGet()throws Exception{

//创建一个HttpClient对象

CloseableHttpClient httpClient = HttpClients.createDefault();

//创建一个GET对象

HttpGet get = new HttpGet("http://www.sogou.com");

//执行请求

CloseableHttpResponse response = httpClient.execute(get);

//获取相应结果

int statusCode = response.getStatusLine().getStatusCode();//响应的状态码

System.out.println(statusCode);//如果结果为200 即为正常

HttpEntity entity = response.getEntity();//响应内容

String string = EntityUtils.toString(entity);

System.out.println(string);

//关闭HttpClient

response.close();

httpClient.close();

}

}

使用httpClient执行get请求<url带参的>

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 org.junit.Test;

public class HttpClient {

@Test

public void doGetWithParam()throws Exception{

//创建一个httpClient对象

CloseableHttpClient httpClient = HttpClients.createDefault();

//创建一个uri对象

URIBuilder uriBuilder = new URIBuilder("http://www.sogou.com/web");

uriBuilder.addParameter("query", "杀破狼");                                             //www.sogou.com/web?query=杀破狼

HttpGet get = new HttpGet(uriBuilder.build());

//执行结果

CloseableHttpResponse response = httpClient.execute(get);

//获取响应结果

int statusCode = response.getStatusLine().getStatusCode();

System.out.println(statusCode);

HttpEntity entity = response.getEntity();

String string = EntityUtils.toString(entity,"UTF-8");

System.out.println(string);

//关闭HttpClient

response.close();

httpClient.close();

}

}

HttpClient的post请求方式<不带参数的post请求>

import org.apache.http.client.methods.CloseableHttpResponse;

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.util.EntityUtils;

import org.junit.Test;

public class HttpClient {

@Test

public void doPost()throws Exception{

//创建一个httpClient对象

CloseableHttpClient httpClient = HttpClients.createDefault();

//创建一个post对象

HttpPost post = new HttpPost("http://localhost:8080/httpclient/post.html");

//执行结果

CloseableHttpResponse response = httpClient.execute(post);

String string = EntityUtils.toString(response.getEntity());

System.out.println(string);

//关闭HttpClient

response.close();

httpClient.close();

}

}

HttpClient使用post请求<带参数请求>

import java.util.ArrayList;

import java.util.List;

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.HttpPost;

import org.apache.http.entity.StringEntity;

import org.apache.http.impl.client.CloseableHttpClient;

import org.apache.http.impl.client.HttpClients;

import org.apache.http.message.BasicNameValuePair;

import org.apache.http.util.EntityUtils;

import org.junit.Test;

public class HttpClient {

@Test

public void doPostWithParam()throws Exception{

//创建一个httpClient对象

CloseableHttpClient httpClient = HttpClients.createDefault();

//创建一个post对象

HttpPost post = new HttpPost("http://localhost:8080/httpclient/post.html");

//创建一个Entity.模拟一个表单

List<NameValuePair> kvList = new ArrayList<>();

kvList.add(new BasicNameValuePair("username","abc"));

kvList.add(new BasicNameValuePair("password","123"));

//包装成一个Entity对象

StringEntity entity = new UrlEncodedFormEntity(kvList);

//设置请求内容

post.setEntity(entity);

//执行结果

CloseableHttpResponse response = httpClient.execute(post);

String string = EntityUtils.toString(response.getEntity());

System.out.println(string);

//关闭HttpClient

response.close();

httpClient.close();

}

}

HttpClient请求的更多相关文章

  1. httpclient请求方法

    /** * httpclient请求方法 * @param url 请求地址 * @param paramMap 请求参数 * @param ent 编码格式 gbk.utf-8 * @return ...

  2. HttpClient请求服务器代码优化版

    HttpClient请求服务器代码优化版 首先,我在前面的两篇博文中介绍了在 Android中,除了使用java.net包下HttpUrlConnection的API访问HTTP服务之外,我们还可以换 ...

  3. 通过HttpClient请求webService

    通过HttpClient请求webService 由于服务端是用webService开发的,android要调用webService服务获取数据,这里采用的是通过HttpClient发送post请求, ...

  4. C# HttpClient 请求认证、数据传输笔记

    目录 一,授权认证 二,请求类型 三,数据传输 C# HttpClient 请求认证.数据传输笔记 一,授权认证 客户端请求服务器时,需要通过授权认证许可,方能获取服务器资源,目前比较常见的认证方式有 ...

  5. SpringMVC获取HttpClient 请求的数据

    package com.nnk.upstream.controller;import org.springframework.util.StreamUtils;import javax.servlet ...

  6. .NetCore简单封装基于IHttpClientFactory的HttpClient请求

    IHttpClientFactory是什么?为什么出现了IHttpClientFactory 一.IHttpClientFactory是什么? IHttpClientFactory是.netcore2 ...

  7. .NET Core HttpClient请求异常详细情况分析

    前言 最近项目上每天间断性捕获到HttpClient请求异常,感觉有点奇怪,于是乎观察了两三天,通过日志以及对接方沟通确认等等,查看对应版本源码,尝试添加部分配置发布后,观察十几小时暂无异常情况出现, ...

  8. Httpclient请求数据(post)

    public static String loginCheck_POST_HttpClient(String name,String pass,String url){ String result = ...

  9. HttpClient请求返回JSON、图片

    /** * Created by RongGuang on 2015/9/19. */ public class RongHttp { /** * Http Post请求 * @param url * ...

随机推荐

  1. install vim-powerline

    1, install pip dnf install python-pip 2,install powerline-status pip install git+git://github.com/Lo ...

  2. Java之使用NetworkInterface类获得网络接口信息

    转:http://www.xuebuyuan.com/1037327.html

  3. ThinkPHP(3)SQL查询语句

    ThinkPHP中对查询语句,包含了基本的查询方式.表达方式.快速查询.区间查询.组合查询.SQL查询.动态查询和子查询. 一.查询方式 ThinkPHP提供了三种基本的查询方式:字符串条件查询.索引 ...

  4. SPRING 标签库

    打造专属自己的淘宝旺铺装修店铺优化商品推广网站客服工作物流发货 如果这个User的宿舍在Gryffindor(Gryffindor是哈利·波特在Hogwarts的宿舍——译者注), 那么“House” ...

  5. MATLAB中白噪声的产生

    rand产生的是[0,1]上的均匀分布的随机序列randn产生均值为0,方差为1的高斯随机序列,也就是白噪声序列 rand产生的是均匀分布白噪声序列randn产生的是正态分布的白噪声序列 MATLAB ...

  6. Android四大基本组件介绍与生命周期

    Android四大基本组件介绍与生命周期 Android四大基本组件分别是Activity,Service服务,Content Provider内容提供者,BroadcastReceiver广播接收器 ...

  7. Oracel查询根据部分字段去重复

    一般一个表的id是唯一的,如果除去id则会有重复数据,有时做项目时查询要求根据某几个字段去掉重复记录,并且查询保留id 以下是Oracel查询时根据部分字段去重复,例如,查询的字段包括id,Sys,C ...

  8. java集合类的学习(二)

    ArrayList,LinkedList,Vector都是List的实现类,前两都没有实现同步机制,Vector实现了同步机制.他们代码类似. ArrayList代表大小可变的数组,允许对元素进行快速 ...

  9. 在CSS中通过@font-face属性来实现网页中嵌入特殊字体。

    首先获取要使用字体的三种文件格式.EOT..TTF或.OTF..SVG,确保能在主流浏览器中都能正常显示该字体..EOT,适用于Internet Explorer 4.0+.TTF或.OTF,适用于F ...

  10. Thinkpad T420 指纹开机 win10 解决方案

    以前没感觉笔记本上的指纹有什么用,后来无意看到了指纹能开机.便尝试把这个功能给用起来.果然麻烦了些. 1.官网上没有win10的指纹应用软件. 下载了win8的版本,安装后没有问题,可以登录win10 ...