{"id":779,"date":"2013-10-09T20:18:05","date_gmt":"2013-10-09T12:18:05","guid":{"rendered":"http:\/\/www.yeetrack.com\/?p=779"},"modified":"2014-04-29T11:17:20","modified_gmt":"2014-04-29T03:17:20","slug":"httpclient-4-3%e6%95%99%e7%a8%8b","status":"publish","type":"post","link":"https:\/\/www.yeetrack.com\/?p=779","title":{"rendered":"HttpClient 4.3\u6559\u7a0b"},"content":{"rendered":"<p><meta http-equiv=\"content-type\" content=\"text\/html; charset=utf-8\" \/><br \/>\nhttpclient\u53d1\u5e03\u4e864.3\u7248\uff0c\u6539\u52a8\u6bd4\u8f83\u5927\uff0c\u4e4b\u524d\u5e38\u7528\u7684\u4e00\u4e9b\u7c7b\u548c\u65b9\u6cd5\u5df2\u7ecf\u4e0d\u63a8\u8350\u4f7f\u7528\u4e86\uff0c\u5728\u8fd9\u91cc\u5bf9httpclient4.3.1\u7684\u5b98\u65b9\u82f1\u6587\u6587\u6863\u8fdb\u884c\u7ffb\u8bd1\uff0c\u5e0c\u671b\u53ef\u4ee5\u575a\u6301\u5230\u6700\u540e\u3002\u76ee\u5f55\u5982\u4e0b\uff1a<\/p>\n<h2><a href=\"https:\/\/www.yeetrack.com\/?p=770#more-770\">\u524d\u8a00<\/a><\/h2>\n<ol>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=770#more-770\">HttpClient\u7684\u5b9a\u4e49<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=770#more-770\">HttpClient\u4e0d\u80fd\u505a\u7684\u4e8b\u60c5<\/a><\/li>\n<\/ol>\n<h2><a href=\"https:\/\/www.yeetrack.com\/?p=773#Fundamentals\">1. \u57fa\u672c\u6982\u5ff5<!--more--><br \/>\n<\/a><\/h2>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Request-execution\">1.1. \u8bf7\u6c42\u6267\u884c<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HTTP-request\">1.1.1. Http\u8bf7\u6c42<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HTTP-response\">1.1.2. HTTP\u54cd\u5e94<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Working-with-message-headers\">1.1.3. \u6d88\u606f\u5934<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HTTP-entity\">1.1.4. Http\u5b9e\u4f53<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Repeatable-entities\">1.1.4.1. \u53ef\u91cd\u590d\u7684\u5b9e\u4f53<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Using-HTTP-entities\">1.1.4.2. \u4f7f\u7528Http\u5b9e\u4f53<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Ensuring-release-of-low-level-resources\">1.1.5. \u786e\u4fdd\u5e95\u5c42\u7684\u8d44\u6e90\u8fde\u63a5\u88ab\u91ca\u653e<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Consuming-entity-content\">1.1.6. \u6d88\u8017Http\u5b9e\u4f53\u5185\u5bb9<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Producing-entity-content\">1.1.7. \u521b\u5efaHttp\u5b9e\u4f53\u5185\u5bb9<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HTML-forms\">1.1.7.1. HTML\u8868\u5355<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Content-chunking\">1.1.7.2. \u5185\u5bb9\u5206\u5757<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Response-handlers\">1.1.8. Response handlers<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HttpClient-interface\">1.2. HttpClient\u63a5\u53e3<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HttpClient-thread-safety\">1.2.1. HttpClient\u7684\u7ebf\u7a0b\u5b89\u5168\u6027<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HttpClient-resource-deallocation\">1.2.2. HttpClient\u7684\u5185\u5b58\u5206\u914d<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HTTP-execution-context\">1.3. Http\u6267\u884c\u4e0a\u4e0b\u6587<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Exception-handling\">1.4. \u5f02\u5e38\u5904\u7406<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HTTP-transport-safety\">1.4.1. HTTP\u4f20\u8f93\u5b89\u5168<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Idempotent-methods\">1.4.2. \u65b9\u6cd5\u7684\u5e42\u7b49\u6027<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Automatic-exception-recovery\">1.4.3. \u5f02\u5e38\u81ea\u52a8\u4fee\u590d<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Request-retry-handler\">1.4.4. \u8bf7\u6c42\u91cd\u8bd5handler<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Aborting-requests\">1.5. \u7ec8\u6b62\u8bf7\u6c42<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#HTTP-protocol-interceptors\">1.6. Http\u534f\u8bae\u62e6\u622a\u5668<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=773#Redirect-handling\">1.7. \u91cd\u5b9a\u5411\u5904\u7406<\/a><\/li>\n<\/ul>\n<h2><a href=\"https:\/\/www.yeetrack.com\/?p=782\">2. \u8fde\u63a5\u7ba1\u7406<\/a><\/h2>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Connection-persistence\">2.1. \u6301\u4e45\u8fde\u63a5<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#HTTP-connection-routing\">2.2. HTTP\u8fde\u63a5\u8def\u7531<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Route-computation\">2.2.1. \u8def\u7531\u8ba1\u7b97<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Secure-HTTP-connections\">2.2.2. \u5b89\u5168\u7684HTTP\u8fde\u63a5<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#HTTP-connection-managers\">2.3. HTTP\u8fde\u63a5\u7ba1\u7406\u5668<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Managed-connections-and-connection-managers\">2.3.1. \u7ba1\u7406\u8fde\u63a5\u548c\u8fde\u63a5\u7ba1\u7406\u5668<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Simple-connection-manager\">2.3.2. \u7b80\u5355\u8fde\u63a5\u7ba1\u7406\u5668<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Pooling-connection-manager\">2.3.3. .\u8fde\u63a5\u6c60\u7ba1\u7406\u5668<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Connection-manager-shutdown\">2.3.4. \u5173\u95ed\u8fde\u63a5\u7ba1\u7406\u5668<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Multithreaded-request-execution\">2.4. \u591a\u7ebf\u7a0b\u8bf7\u6c42\u6267\u884c<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Connection-eviction-policy\">2.5. \u8fde\u63a5\u56de\u6536\u7b56\u7565<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Connection-keep-alive-strategy\">2.6. \u8fde\u63a5\u5b58\u6d3b\u7b56\u7565<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Connection-socket-factories\">2.7. socket\u8fde\u63a5\u5de5\u5382<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Secure-socket-layering\">2.7.1. \u5b89\u5168SOCKET\u5206\u5c42<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Integration-with-connection-manager\">2.7.2. \u96c6\u6210\u8fde\u63a5\u7ba1\u7406\u5668<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#SSL-TLS-customization\">2.7.3. SSL\/TLS\u5b9a\u5236<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#Hostname-verification\">2.7.4. \u57df\u540d\u9a8c\u8bc1<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=782#\">2.8. HttpClient\u4ee3\u7406\u670d\u52a1\u5668\u914d\u7f6e<\/a><\/li>\n<\/ul>\n<h2><a href=\"https:\/\/www.yeetrack.com\/?p=822\">3. Http\u72b6\u6001\u7ba1\u7406<\/a><\/h2>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=822#HTTP-cookies\">3.1. HTTP cookies<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=822#Cookie-versions\">3.1.1. Cookie versions<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=822#Cookie-specifications\">3.2. Cookie\u89c4\u8303<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=822#Choosing-cookie-policy\">3.3. \u9009\u62e9Cookie\u7b56\u7565<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=822#Custom-cookie-policy\">3.4. \u81ea\u5b9a\u4e49Cookie\u7b56\u7565<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=822#Cookie-persistence\">3.5. Cookie\u6301\u4e45\u5316<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=822#HTTP-state-management-and-execution-context\">3.6. HTTP\u72b6\u6001\u7ba1\u7406\u548c\u6267\u884c\u4e0a\u4e0b\u6587<\/a><\/li>\n<\/ul>\n<h2><a href=\"https:\/\/www.yeetrack.com\/?p=825\">4.HTTP\u8ba4\u8bc1<\/a><\/h2>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#User-credentials\">4.1. \u7528\u6237\u51ed\u8bc1<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#Authentication-schemes\">4.2. \u8ba4\u8bc1\u65b9\u6848<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825\">4.3. \u51ed\u8bc1 provider<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#HTTP-authentication-and-execution-context\">4.4. HTTP\u6388\u6743\u548c\u6267\u884c\u4e0a\u4e0b\u6587<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#Caching-of-authentication-data\">4.5. \u7f13\u5b58\u8ba4\u8bc1\u6570\u636e<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#Preemptive-authentication\">4.6. \u62a2\u5148\u8ba4\u8bc1<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#NTLM-Authentication\">4.7. NTLM\u8ba4\u8bc1<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#NTLM-connection-persistence\">4.7.1. NTLM\u8fde\u63a5\u6301\u4e45\u6027<\/a><\/li>\n<\/ul>\n<\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#SPNEGO-Kerberos-Authentication\">4.8. SPNEGO\/Kerberos\u8ba4\u8bc1<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#SPNEGO-support-in-HttpClient\">4.8.1. \u5728HTTPCIENT\u4e2d\u4f7f\u7528SPNEGO<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#GSS-Java-Kerberos-Setup\">4.8.2. \u4f7f\u7528GSS\/JAVA KERBEROS<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#login.conf-file\">4.8.3. login.conf\u6587\u4ef6<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#krb5.conf-krb5.ini-file\">4.8.4. KRB5.CONF \/ KRB5.INI \u6587\u4ef6<\/a><\/li>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=825#Windows-Specific-configuration\">4.8.5. WINDOWS\u8be6\u7ec6\u7684\u914d\u7f6e<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2><a href=\"https:\/\/www.yeetrack.com\/?p=832\">5. \u5feb\u901fAPI<\/a><\/h2>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=832#Easy-to-use-facade-API\">5.1. Easy to use facade API<\/a>\n<ul>\n<li><a href=\"https:\/\/www.yeetrack.com\/?p=832#Response-handling\">5.1.1. \u54cd\u5e94\u5904\u7406<\/a><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<h2>6. HTTP Caching<\/h2>\n<pre><code>6.1. General Concepts\n6.2. RFC-2616 Compliance\n6.3. Example Usage\n6.4. Configuration\n6.5. Storage Backends\n<\/code><\/pre>\n<h2>7. Advanced topics<\/h2>\n<pre><code>7.1. Custom client connections\n7.2. Stateful HTTP connections\n\n    7.2.1. User token handler\n    7.2.2. Persistent stateful connections\n\n7.3. Using the FutureRequestExecutionService\n\n    7.3.1. Creating the FutureRequestExecutionService\n    7.3.2. Scheduling requests\n    7.3.3. Canceling tasks\n    7.3.4. Callbacks\n    7.3.5. Metrics\n<\/code><\/pre>\n","protected":false},"excerpt":{"rendered":"<p>httpclient\u53d1\u5e03\u4e864.3\u7248\uff0c\u6539\u52a8\u6bd4\u8f83\u5927\uff0c\u4e4b\u524d\u5e38\u7528\u7684\u4e00\u4e9b\u7c7b\u548c\u65b9\u6cd5\u5df2\u7ecf\u4e0d\u63a8\u8350\u4f7f\u7528\u4e86\uff0c\u5728\u8fd9\u91cc\u5bf9httpclient4.3.1\u7684\u5b98\u65b9\u82f1\u6587\u6587\u6863\u8fdb\u884c\u7ffb\u8bd1\uff0c\u5e0c\u671b\u53ef\u4ee5\u575a\u6301\u5230\u6700\u540e\u3002\u76ee\u5f55\u5982\u4e0b\uff1a \u524d\u8a00 HttpCl&#46;&#46;&#46;<\/p>\n","protected":false},"author":2,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"pgc_sgb_lightbox_settings":"","footnotes":""},"categories":[33],"tags":[8,7,5,13],"class_list":["post-779","post","type-post","status-publish","format-standard","hentry","category-coding","tag-java","tag-7","tag-5","tag-13"],"views":46652,"_links":{"self":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/779","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=779"}],"version-history":[{"count":6,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/779\/revisions"}],"predecessor-version":[{"id":843,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=\/wp\/v2\/posts\/779\/revisions\/843"}],"wp:attachment":[{"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=779"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=779"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.yeetrack.com\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=779"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}