HttpClient的最本质的功能是执行HTTP方法。一个HTTP方法的执行涉及到一个或几个HTTP请求/ HTTP响应的交流,通常由HttpClient的内部处理。用户预计将提供一个请求对象来执行和HttpClient的预期发送请求到目标服务器返回相应的响应对象,如果执行未成功或抛出异常。

下面是一个示例请求执行过程在其最简单的形式:

CloseableHttpClient httpclient = HttpClients.createDefault();
HttpGet httpget = new HttpGet("http://www.baidu.com");
CloseableHttpResponse response = httpclient.execute(httpget);
try {
System.out.println(response.getStatusLine().toString());
} finally {
response.close();
}
System.out.println("OK");

输出情况:

HTTP/1.1 200 OK
OK

请求成功

所有HTTP请求请求行包含一个方法名,URI和请求 HTTP协议版本。

URI是一个统一资源标识符标识要在上面应用请求的资源。 HTTP请求的URI包括协议方案,主机名,可选的端口,资源路径,可选查询和可选的片段。

例如:"http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq=f&oq="

HttpClient提供 URIBuilder 工具类来简化 创建和修改的请求uri。

URI uri = new URIBuilder()
.setScheme("http")
.setHost("www.google.com")
.setPath("/search")
.setParameter("q", "httpclient")
.setParameter("btnG", "Google Search")
.setParameter("aq", "f")
.setParameter("oq", "")
.build();
HttpGet httpget = new HttpGet(uri);
System.out.println(httpget.getURI());

输出结果:http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq=f&oq=

Java应用程序访问网络资源--HttpClient的更多相关文章

  1. Hadoop(八)Java程序访问HDFS集群中数据块与查看文件系统

    前言 我们知道HDFS集群中,所有的文件都是存放在DN的数据块中的.那我们该怎么去查看数据块的相关属性的呢?这就是我今天分享的内容了 一.HDFS中数据块概述 1.1.HDFS集群中数据块存放位置 我 ...

  2. [原创]HBase学习笔记(3)- Java程序访问HBase

    这里介绍使用java api来访问和操作HBase,例如create.delete.select.update等操作. 1.HBase配置 配置HBase使用的zookeeper集群地址和端口. pr ...

  3. crawler_基础之_java.net.HttpURLConnection 访问网络资源

    java访问网络资源 由底层到封装  为  scoket==> java.net.HttpURLConnection==>HttpClient 这次阐述先 java.net.HttpURL ...

  4. Java进阶(三十二) HttpClient使用详解

    Java进阶(三十二) HttpClient使用详解 Http协议的重要性相信不用我多说了,HttpClient相比传统JDK自带的URLConnection,增加了易用性和灵活性(具体区别,日后我们 ...

  5. 浅析Java中的访问权限控制

    浅析Java中的访问权限控制 今天我们来一起了解一下Java语言中的访问权限控制.在讨论访问权限控制之前,先来讨论一下为何需要访问权限控制.考虑两个场景: 场景1:工程师A编写了一个类ClassA,但 ...

  6. java\c程序的内存分配

    JAVA 文件编译执行与虚拟机(JVM)介绍 Java 虚拟机(JVM)是可运行Java代码的假想计算机.只要根据JVM规格描述将解释器移植到特定的计算机上,就能保证经过编译的任何Java代码能够在该 ...

  7. java类的访问权限

    1.解析 Java有四种访问权限, 其中三种有访问权限修饰符,分别为private,public和protected,还有一种不带任何修饰符. private: Java语言中对访问权限限制的最窄的修 ...

  8. 面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序

    面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 Ajax 为更好的 Web 应用程序铺平了道路 在 Web 应用程序开发中,页面重载循环是最大的一个使用障碍,对于 Java™ ...

  9. 【转】利用MVC模式开发Java应用程序[组图]

    Java是一种面向对象的语言,是实现面向对象编程的强大工具.我们在实际编程中,应该运用并发挥其最大效能.但是,要利用面向对象编程思想,自己独立开 发出好的Java应用程序,非凡是大.中型程序,并不是一 ...

随机推荐

  1. BHP Net Tool

    #导入需要用到的包 import sys import getopt import threading import socket import subprocess #定义全局变量 listen = ...

  2. 关于vue.js中表单控件绑定练习

    html: <!DOCTYPE html><html lang="en"><head> <meta charset="UTF-8 ...

  3. 【以前弄的老东西】DLLspy超犀利后门 (源代码+程序+使用手册+二次开发文档)

    这个玩意儿是很久之前的整的.一直没有做完,但是基本功能和框架都做好了,现在发出来,希望有能力的家伙一起完成.DLLspy,绝对免杀,隐藏,HTTP请求劫持,居家旅行,杀人放火必备良药.有时间我会继续开 ...

  4. 使用subclass UIActivity的方案来分享图片

    IOS6开始, 系统提供了UIActivityViewController, 对图片,文字,url进行相关的操作. 对于缺乏UI设计师的开发来说, 使用它进行轻量级的分享是很好的选择. 最大的缺点是自 ...

  5. CefBrowser 复制图片解决办法

    使用的是CefSharp控件,开放出的功能比较多,但是还是有一些封闭的.例如复制图片到Clipbord,库没有提供. VC虽然看得懂,但托管代码没搞过,看得很蛋痛,而且如果有CefSharp有新版本还 ...

  6. Python range() xrange()

    range 前面小节已经说明了,range([start,] stop[, step]),根据start与stop指定的范围以及step设定的步长,生成一个序列. xrange用法与 range 完全 ...

  7. [原] wmic: Invalid XSL format (or) file name错误解决方法

    之前运行wmic命令正确,今天在服务器上出现Invalid XSL format (or) file name的提示,搜索了一下,在这里找到了答案: http://www.ctkn.net/2011/ ...

  8. [Linux] - 阿里云CentOS 6.5 安装Docker

    因为阿里云的CentOS 6.5版本默认内核kernel版本是2.6的,比较低.安装docker的后,运行不了. 步骤: 1.使用命令更新: yum update 2.安装Docker.这里忽略500 ...

  9. PHP 获取指定目录下所有文件(包含子目录)

    PHP 获取指定目录下所有文件(包含子目录) //glob — 寻找与模式匹配的文件路径 $filter_dir = array('CVS', 'templates_c', 'log', 'img', ...

  10. 黄聪:GeckoWebBrowser多窗口独立cookie

    using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; usin ...