分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > 运营维护

HttpClient-01

发布时间:2023-09-06 01:31责任编辑:白小东关键词:暂无标签

Http 协议应该是互联网中最重要的协议。持续增长的 web 服务、可联网的家用电器等都在继承并拓 展着 Http 协议,向着浏览器之外的方向发展。

虽然 jdk 中的 java.net 包中提供了一些基本的方法,通过 http 协议来访问网络资源,但是大多数场 景下,它都不够灵活和强大。HttpClient 致力于填补这个空白,它可以提供有效的、最新的、功能丰 富的包来实现 http 客户端

以下是一个简单的请求例子:

 ???@Test ????public void test01() throws Exception { ???????CloseableHttpClient httpclient = HttpClients.createDefault(); ???????HttpGet httpget = new HttpGet("http://www.baidu.com/"); ???????CloseableHttpResponse response = httpclient.execute(httpget); ???????try { ???????????System.out.println(response); ???????} catch (Exception e) { ???????} finally { ???????????response.close(); ???????} ???}

1.1.1. HTTP 请求

所有的 Http 请求都有一个请求行(request line),包括方法名、请求的 URI 和 Http 版本号。

HttpClient 支持 HTTP/1.1 这个版本定义的所有 Http 方法:GET,HEAD,POST,PUT,DELETE,TRACE 和 OPTIONS。对于每一种 http 方法,HttpClient 都定义了一个相应的类:
HttpGet, HttpHead, HttpPost, HttpPut, HttpDelete, HttpTrace 和 HttpOpquertions。

Request-URI 即统一资源定位符,用来标明 Http 请求中的资源。Http request URIs 包含协议名、主机名、主机端口(可选)、资源路径、query(可选)和片段信息(可选)。 

HttpGet httpget = 
new HttpGet("http://www.google.com/search?hl=en&q=httpclient&btnG=Google+Search&aq= f&oq="); 

HttpClient 提供 URIBuilder 工具类来简化 URIs 的创建和修改过程。 

@Test ????public void test02() throws Exception { ???????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?q=httpclient&btnG=Google+Search&aq=f&oq=

1.1.2. HTTP响应

服务器收到客户端的http请求后,就会对其进行解析,然后把响应发给客户端,这个响应就是HTTP response.HTTP响应第一行是HTTP版本号,然后是响应状态码和响应内容。

HttpResponse response = new BasicHttpResponse(HttpVersion.HTTP_1_1, HttpStatus.SC_OK, "OK"); ???System.out.println(response.getProtocolVersion()); ???System.out.println(response.getStatusLine().getStatusCode()); ???System.out.println(response.getStatusLine().getReasonPhrase()); ???System.out.println(response.getStatusLine().toString());

上述代码会在控制台输出:

 ???HTTP/1.1 ???200 ???OK ???HTTP/1.1 200 OK

HttpClient-01

原文地址:http://www.cnblogs.com/chenglc/p/8064989.html

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved