日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

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

發布時間:2023/12/3 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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

總結

以上是生活随笔為你收集整理的HttpClient 4 API –获取状态代码-getStatusLine()。getStatusCode()示例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。