这是(shì)HttpClient发送http请求需要的jar包下载,最近(jìn)这几周,一直在忙同一个项目,刚(gāng)开始是了解(jiě)需求,需(xū)求有一定(dìng)了解之后(hòu),就开始调第(dì)三方的接(jiē)口(kǒu)。由(yóu)于(yú)第三方给(gěi)提供的(de)文档很模糊,在调(diào)接口的时候,出了(le)很多问题,一直在沟通(tōng)协调,具体的无(wú)奈就不(bú)说了,由于接口的访问协议是通过 HTTP 和 HTTPS 通讯的,因此封装了一个简单的请(qǐng)求工(gōng)具类,由于时(shí)间紧(jǐn)迫(pò),并没(méi)有额外(wài)的时间对工(gōng)具类进行(háng)优化和扩展,如果后(hòu)续空出时间的(de)话,我会对(duì)该工具类继(jì)续(xù)进行优化和扩(kuò)展的。
HttpClient 不是一个浏(liú)览器。它是一个客户端的 HTTP 通信实现库。HttpClient的目标是发 送和接收HTTP 报文。HttpClient不会去缓存内容,执行 嵌入在 HTML 页面中的javascript 代码,猜测(cè)内容类(lèi)型,重新格式化请求(qiú)/重定向URI,或者其(qí)它和 HTTP 运输无关的功能(néng)。
HttpClient jar4.5包是目(mù)前构建http协议的重要组(zǔ)成部分,当用户(hù)在使用HttpClient软件(jiàn)创建协议项目内容(róng)的时候,就需要用到(dào)HttpClient jar程序,让用户在(zài)创建的过(guò)程中更加稳定,程序(xù)的性能更加灵活,这款软(ruǎn)件主要的(de)目的就(jiù)是帮助(zhù)程序师在使用HttpClient软件的时候可以得到丰富的(de)创建数据内(nèi)容(róng),在认证方案、字符编码、重定向(xiàng)处(chù)理、性能优化、偏好架构(gòu)等方便得到最舒适的开发(fā)环境,从而提(tí)高开发的(de)速度,加快http协议的稳(wěn)定性,需(xū)要(yào)的朋友可以下载试试!
服(fú)务器验证
HttpClient几乎透(tòu)明(míng)地处理与(yǔ)服务器的身份验证(zhèng),开发人员必(bì)须做的唯一事情(qíng)实际(jì)上(shàng)是提(tí)供登录凭据。这些(xiē)凭据存储在HttpState实(shí)例中,可以使用setCredentials(AuthScope authscope, Credentials cred)和getCredentials(AuthScope authscope) 方法设置(zhì)或检索。
可以使用(yòng)setDoAuthentication(boolean doAuthentication) HttpMethod类(lèi)中的(de)方法(fǎ)禁用HttpClient中内置的自(zì)动授权。更(gèng)改仅影响该方法实例(lì)。
抢占认(rèn)证
可以在HttpClient中(zhōng)启用(yòng)抢占认证。在这种(zhǒng)模(mó)式下,HttpClient将在(zài)某些(xiē)情况下甚至在(zài)服务器给出未授权响应之前发送(sòng)基本认证(zhèng)响应,从而减(jiǎn)少进(jìn)行连接的开销。要(yào)启(qǐ)用此功(gōng)能,请使用以(yǐ)下命令:
client.getParams()。setAuthenticationPreemptive(true);
抢占式(shì)身份(fèn)验(yàn)证(zhèng)模式还需要为要尝试抢占式(shì)身份验(yàn)证的目标或代理主机设置默认凭据。未能提(tí)供默认(rèn)凭据将导(dǎo)致抢占式身份(fèn)验证模式无效。
凭据defaultcreds = new UsernamePasswordCredentials(“username”,“password”);
client.getState()。setCredentials(new AuthScope(“myhost”,80,AuthScope.ANY_REALM),defaultcreds);
HttpClient中的抢(qiǎng)占式身份验(yàn)证符合rfc2617:
客(kè)户端应该(gāi)假定在请(qǐng)求URI的路径(jìng)字段中的最(zuì)后符号元素的(de)深(shēn)度(dù)或(huò)深度以上的所(suǒ)有路径也在由(yóu)当前询问的(de)基(jī)本领域值(zhí)指定的保护(hù)空间内(nèi)。客户端可以(yǐ)预先发送(sòng)相应的授权报头(tóu),其中请求该空间(jiān)中的资源,而不从服(fú)务(wù)器(qì)接收另(lìng)一询问。类(lèi)似地,当客户(hù)端(duān)向代(dài)理(lǐ)发送请求(qiú)时,其可以在代理授权报头字段中(zhōng)重用用户ID和密(mì)码,而不从代理服(fú)务器接收另一询问。
服务器认证的安全方面(miàn)
在开发可能需要与不受(shòu)信任(rèn)的网(wǎng)站或Web应用程序(xù)通信的应用程序(xù)时(shí),请谨慎使用默认凭据。当激(jī)活抢占认证或未明确给(gěi)定特定认证(zhèng)域(yù)的凭证(zhèng)时,HttpClient将使用默(mò)认凭据(jù)尝试与目标(biāo)站点进行身份验证。如果(guǒ)要避免将敏感凭据发送(sòng)到不受信任(rèn)的站点,请(qǐng)尽可能缩小凭证范(fàn)围(wéi):始终指定主(zhǔ)机和已知的(de)凭(píng)据(jù)。
在生产应(yīng)用程(chéng)序(xù)中不建议使用AuthScope.ANY身份(fèn)验证范围(null主机和/或(huò)域的值)设(shè)置凭据。这样做将导致为所有认(rèn)证尝试(在抢占认证(zhèng)的(de)情况下的所有请求)发送凭证(zhèng)。使用此设(shè)置(zhì)应限于仅(jǐn)调试。
