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. svn图标不显示的解决方案

    最近发现svn图标莫名其妙的不显示,其他操作都正常.在网上搜了一些方法. 解决方法一(失败): 升级最新版本,我的本来就是最新版本 解决方法二(失败): 右键->TortoiseSVN-> ...

  2. RHEL6.4编译安装企业级LAMMP平台

    一.LAMMP简介 二.使用软件及服务器架构说明 三.配置及安装过程    1.安装arp与httpd    2.安装mysql    3.安装php(php-fpm)    4.安装Xcache   ...

  3. Python学习笔记-抽象

    懒惰即美德.代码量少. hasattr判断函数是否可用. 创建函数. def hello(name) return 'hello,'+name+'!' 文档化函数: 加注释(#开头) 文档字符串.函数 ...

  4. 持续集成配置-Teamcity

    1.安装目录\buildagent\work\每个项目下一个文件夹\src下是源 目的: 2. 安装目录\buildagent\work\每个项目下一个文件夹\src下是源 目的是teamcity中配 ...

  5. 华为手机调试显示log日志

    华为手机默认状态手机log为关闭状态,所以看不到详细错误信息. 手机拨号*#*#2846579#*#*,进入projectmenu--后台设置--LOG设置--LOG开关--打开 勾选AP日志   C ...

  6. iOS 渐变进度条

    #import <UIKit/UIKit.h> @interface JianBianView : UIView //为了增加一个表示进度条的进行,可们可以使用mask属性来屏蔽一部分 @ ...

  7. ubuntu下安装配置OpenCV

    Cmake的安装 我用的是ubuntu-software自动下载安装的. Ubuntu 下安装 OpenCV 首先下载安装相关包,然后下载OpenCV 系统:ubuntu16.04 OpenCV:2. ...

  8. 'Check Android SDK'has encountered a problem.An internal error during:"Check Android SDK".

    在android项目下的layout目录下创建一个xml文件finish之后,报此错误.虽然点ok之后,不影响使用. 解决方案: 1.把project菜单下的build automatically前面 ...

  9. com.sun.org.apache.xerces.internal.impl.io.MalformedByteSequenceException: Invalid byte 2 of 2-byte UTF-8 sequence报错解决方法

    添加了XML实体和表映射文件后,莫名报错,百思不得其解,也找不到哪里错了,后来把mybatis-config.xml文件中去掉中文注释就好了 mybatis-config.xml文件中的内容如下,去掉 ...

  10. JavaScript HTML CSS外部链接

    HTML文件 <!--<html> <head><link rel="stylesheet" type="text/css" ...