HttpClient 4 API –获取状态码-getStatusLine()。getStatusCode()示例

在HttpClient API中获取状态代码的快速指南。 getStatusLine()。getStatusCode()示例和相关的错误。

1.简介

在这个非常快速的教程中,我将展示如何使用HttpClient 4获取和验证HTTP响应的StatusCode。

2. Maven依赖

要运行此HttiClient应用程序,需要以下jar。

commons-logging在内部被其他jar使用。 请不要忘记添加这些jar,否则会出现编译时和运行时错误。

<dependency><groupId>commons-logging</groupId><artifactId>commons-logging</artifactId><version>1.2</version>
</dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpclient</artifactId><version>4.5.12</version>
</dependency><dependency><groupId>org.apache.httpcomponents</groupId><artifactId>httpcore</artifactId><version>4.4.13</version>
</dependency>

错误:

如果您错过了commons-logging jar,则会产生以下异常。

 Exception in thread "main" Exception in thread java.lang.NoClassDefFoundError: org/apache/commons/logging/LogFactory at org.apache.http.conn.ssl.DefaultHostnameVerifier.<init>(DefaultHostnameVerifier.java: 82 ) at org.apache.http.impl.client.HttpClientBuilder.build(HttpClientBuilder.java: 966 ) at com.java.w3schools.blog.HttpClient.HttpClientGetStatusCode.main(HttpClientGetStatusCode.java: 21 )  Caused by: java.lang.ClassNotFoundException: org.apache.commons.logging.LogFactory at java.base/jdk.internal.loader.BuiltinClassLoader.loadClass(BuiltinClassLoader.java: 583 ) at java.base/jdk.internal.loader.ClassLoaders$AppClassLoader.loadClass(ClassLoaders.java: 178 ) at java.base/java.lang.ClassLoader.loadClass(ClassLoader.java: 521 ) ... 3 more 

3.从Http响应中检索状态代码

发送HTTP请求后,经过处理后,响应将发送回调用方。

 package com.java.w3schools.blog.HttpClient;  import java.io.IOException;  import org.apache.http.HttpStatus;  import org.apache.http.client.ClientProtocolException;  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.HttpClientBuilder;  public class HttpClientGetStatusCode { private static final String GOOGLE_URL = " http://www.google.com " ; private static CloseableHttpClient instance; private static CloseableHttpResponse response; public static void main(String[] args) throws ClientProtocolException, IOException { HttpGet httpGet = new HttpGet(GOOGLE_URL); instance = HttpClientBuilder.create().build(); response = instance.execute(httpGet); System.out.println( "response.getStatusLine() :: " + response.getStatusLine()); final int statusCode = response.getStatusLine().getStatusCode(); int code = HttpStatus.SC_OK; if (code == statusCode) { System.out.println( "Status Code : " + code); } else { System.out.println( "StatusCode not 200 : " + code); } }  } 

返回的响应类型为org.apache.http.HttpResponse ,它使我们能够获取请求的执行状态。 getStatusLine()方法返回保存请求状态的StatusLine对象。 采用
getStatusCode()仅获取执行代码。

输出:

 response.getStatusLine() :: HTTP/ 1.1 200 OK  Status Code : 200 

4. URL断开时例外

如果给定的URL关闭或错误,则我们将获得UnknownHostException运行时异常。

 Exception in thread "main" Exception in thread java.net.UnknownHostException: www.google.com1: nodename nor servname provided, or not known at java.base/java.net.Inet6AddressImpl.lookupAllHostAddr(Native Method) at java.base/java.net.InetAddress$PlatformNameService.lookupAllHostAddr(InetAddress.java: 929 ) at java.base/java.net.InetAddress.getAddressesFromNameService(InetAddress.java: 1515 ) at java.base/java.net.InetAddress$NameServiceAddresses.get(InetAddress.java: 848 ) at java.base/java.net.InetAddress.getAllByName0(InetAddress.java: 1505 ) at java.base/java.net.InetAddress.getAllByName(InetAddress.java: 1364 ) at java.base/java.net.InetAddress.getAllByName(InetAddress.java: 1298 ) at org.apache.http.impl.conn.SystemDefaultDnsResolver.resolve(SystemDefaultDnsResolver.java: 45 ) at org.apache.http.impl.conn.DefaultHttpClientConnectionOperator.connect(DefaultHttpClientConnectionOperator.java: 112 ) at org.apache.http.impl.conn.PoolingHttpClientConnectionManager.connect(PoolingHttpClientConnectionManager.java: 376 ) at org.apache.http.impl.execchain.MainClientExec.establishRoute(MainClientExec.java: 393 ) at org.apache.http.impl.execchain.MainClientExec.execute(MainClientExec.java: 236 ) at org.apache.http.impl.execchain.ProtocolExec.execute(ProtocolExec.java: 186 ) at org.apache.http.impl.execchain.RetryExec.execute(RetryExec.java: 89 ) at org.apache.http.impl.execchain.RedirectExec.execute(RedirectExec.java: 110 ) at org.apache.http.impl.client.InternalHttpClient.doExecute(InternalHttpClient.java: 185 ) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java: 83 ) at org.apache.http.impl.client.CloseableHttpClient.execute(CloseableHttpClient.java: 108 ) at com.java.w3schools.blog.HttpClient.HttpClientGetStatusCode.main(HttpClientGetStatusCode.java: 24 ) 

5.结论

在本文中,我们已经看到了如何获取HttpClient请求的状态代码

和往常一样,本文显示的示例在Github上。

GitHub代码

翻译自: https://www.javacodegeeks.com/2020/04/httpclient-4-api-get-the-status-code-getstatusline-getstatuscode-example.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339786.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

css table嵌套内部table不受外部影响_HTML+CSS网页一揽子(4)

CSS重要属性之浮动基本属性&#xff1a;float:left&#xff1b;左浮动float:right&#xff1b;右浮动float:none&#xff1b;不浮动(一般应用于覆盖既有浮动属性时使用)clear:both&#xff1b;清除浮动对其他元素带来的影响应用场景&#xff1a;(1)网站大的结构布局&#xff1a…

ejb构建_如何使用单例EJB和MBean构建和清除参考数据缓存

ejb构建在我的一个项目中&#xff0c;我需要使用EclipseLink作为ORM框架从Java EE 6 WebLogic环境中的多个源中加载参考数据。 由于我在Java EE世界中找不到与Spring YET的Cacheable相当的注释&#xff0c;因此我不得不编写自己的缓存解决方案。 尽管参考数据几乎不会随时间变化…

mysql ticks_【原创】C# 计时周期数(Ticks)在不同数据库上的实现

动手之前&#xff0c;先来看看 Ticks 在微软官方文档上的定义&#xff1a;注解一个计时周期表示一百纳秒&#xff0c;即一千万分之一秒。1 毫秒内有 10,000 个计时周期&#xff0c;即 1 秒内有 1,000万个计时周期。此属性的值表示自0001年1月1日午夜12:00:00 0:00:00 (公历日期…

在Spring Boot测试中使用Testcontainer进行数据库集成测试

在此博客文章中&#xff0c;我想演示如何在Spring Boot测试中集成Testcontainer以便与数据库一起运行集成测试。 我没有使用Testcontainers的Spring Boot模块。 如何与他们合作&#xff0c;我将在另一篇博客文章中进行介绍。 所有示例都可以在GitHub上找到 。 为什么要使用测试…

php模块安装 pdo_mysql_关于php插件pdo_mysql的安装

今天在做一个商城的连接的时候&#xff0c;需要MpDO验证。需要安装pdo_mysql模块&#xff0c;刚开始按照php扩展模块的安装按照这个安装ZIP,curl都成功了但是安装pdo_mysql却不行&#xff0c;在./configure --with-php-config/usr/local/php/bin/php-config是出现错误。如下che…

java8串行和并行的区别_垃圾收集器–串行,并行,CMS,G1(以及Java 8中的新增功能)...

java8串行和并行的区别4个Java垃圾收集器–错误的选择如何严重影响性能 在2014年&#xff0c;对于大多数开发人员来说&#xff0c;还有两件事仍然是个谜&#xff1a;垃圾收集和了解异性。 由于我对后者知之甚少&#xff0c;所以我认为我会对前者大吃一惊&#xff0c;尤其是因为…

python函数参数学习_python学习笔记-11.函数参数和返回值进阶

1. 函数参数和返回值的作用函数根据有没有参数以及有没有返回值&#xff0c;可以相互组合&#xff0c;共有4种形式&#xff1a;无参数&#xff0c;无返回值无参数&#xff0c;有返回值有参数&#xff0c;无返回值有参数&#xff0c;有返回值定义函数时&#xff0c;是否接收参数…

java spr_Java中的42行代码中的URL缩短器服务(Java(?!)Spring Boot + Redis

java spr显然&#xff0c;编写URL缩短服务是新的“ Hello&#xff0c;world&#xff01; ”在IoT /微服务/时代的世界中。 一切始于在45行Scala中的URL缩短服务 -整洁的Scala&#xff0c;以Spray和Redis进行调味以进行存储。 紧随其后的是&#xff0c; 在35行Clojure中提供了ur…

python邮件发送哪个好_python发邮件(一)

复习模块如果我们要发送邮件&#xff0c;就需要用到smtplib模块的以下方法&#xff1a;1、import smtplib #引入smtplib模块2、server smtplib.SMTP() #server为变量&#xff0c;通过SMTP指定一个服务器&#xff0c;这样才能把邮件送到另一个服务器&#xff0c;SMTP…

SSL Kafka经纪人从Kafka Mirror Maker迁移到Brooklin的挑战

问题 从卡夫卡镜子制造商转移到布鲁克林有我在这里所写的优势。 但是&#xff0c;进行这种迁移并不容易&#xff0c;因为它本来应该如此。 我面临的主要挑战是&#xff1a;在消费者Kafka经纪人和Brooklin之间建立SSL连接 解 SSL问题 事实证明&#xff0c;这个问题比我预期的要…

mysql移动数据的语句是_mysql基本语句

MySQL关系型数据库RDS中的老大哥&#xff0c;增删改查是MySQL入门的基础增删改查语句增删改查的语句命令为增&#xff1a;insert删&#xff1a;delete改&#xff1a;update查&#xff1a;SELECT或者show库操作创建数据库&#xff1a;create database shujukuba;创建带字符集的数…

jetty嵌入式容器_嵌入式Jetty和Apache CXF:借助Spring Security来保护REST服务

jetty嵌入式容器最近&#xff0c;我遇到了一个非常有趣的问题&#xff0c;我认为这只需要几分钟就可以解决&#xff1a;在Linux中使用Spring Security &#xff08;当前稳定版本3.2.5 &#xff09;保护Apache CXF &#xff08;当前版本3.0.1 &#xff09;/ JAX-RS REST服务。在…

python逻辑运算符的使用_总结Python中逻辑运算符的使用

下表列出了所有python语言支持的逻辑运算符。假设变量a持有10和变量b持有20&#xff0c;则&#xff1a;示例:试试下面的例子就明白了所有的python编程语言提供了逻辑运算符&#xff1a;#!/usr/bin/pythona 10b 20c 0if ( a and b ):print "line 1 - a and b are true&q…

如何使用用户数据脚本在EC2实例上安装Apache Web Server

你好朋友&#xff0c; 在本教程中&#xff0c;我们将看到如何使用用户数据脚本在EC2实例上安装Apache Web Server。 在我以前的教程之一中&#xff0c;我已经解释了如何使用AWS控制台启动EC2实例。如果您还没有完成该操作&#xff0c;我建议您先进行一下操作。 首先&#xf…

java 常量接口_java接口定义常量研究

背景和同事讨论到&#xff0c;在接口中定义常量的问题&#xff0c;引发了争论&#xff0c;即&#xff0c;假如在接口中定义变量&#xff0c;是否需要用static来限定的问题&#xff0c;或者说用static和不用static会有什么区别。引论package spring.interfaceTest;public interf…

spring 多租户_使用Spring Security的多租户应用程序的无状态会话

spring 多租户从前&#xff0c; 我发表了一篇文章&#xff0c;解释了构建无状态会话的原理 。 巧合的是&#xff0c;我们再次为多租户应用程序执行同一任务。 这次&#xff0c;我们将解决方案集成到Spring Security框架中&#xff0c;而不是自己构建身份验证机制。 本文将解释…

java api 1.6 下载_Java JDK API

JDKJavaDevelopmentKit是SunMicrosystems针对Java开发员的产品。自从Java推出以来&#xff0c;JDK已经成为使用最广泛的JavaSDK。JDK是整个Java的核心&#xff0c;包括了Java运行环境。相关软件软件大小版本说明下载地址jdk(Java Development Kit)是Sun Microsystems针对java开…

Java / Cloud:如何快速创建支持Kubernetes的REST微服务

可以肯定地说&#xff0c;如今微服务与云的结合风靡一时。 微服务的开发比以往任何时候都多&#xff0c;从而导致应用程序部署数量增加。 在过去的十年中&#xff0c;开发了诸如Docker和Kubernetes之类的容器化和编排工具&#xff0c;从而使微服务模式真正易于采用。 本文将教…

java考试安徽工业大学_2011~2012《Java语言程序设计》试卷A及答案(安徽工业大学)...

《2011~2012《Java语言程序设计》试卷A及答案(安徽工业大学)》由会员分享&#xff0c;可在线阅读&#xff0c;更多相关《2011~2012《Java语言程序设计》试卷A及答案(安徽工业大学)(6页珍藏版)》请在人人文库网上搜索。1、装 订 线 安 徽 工 业 大 学 试 题 纸(一)20112012学年第…

jsr303自定义验证_JSR 310新日期/时间API的自定义JSR 303 Bean验证约束

jsr303自定义验证借助JSR 310&#xff0c;Java 8终于为我们带来了不错的日期和时间API。 对于仍在使用Java 7的那些人&#xff08;就像我目前在我的当前项目中一样&#xff09;&#xff0c;有很好的反向移植&#xff0c;请访问www.threeten.org了解更多详细信息。 但是&#xf…