使用HttpClient過程中常見的一些問題
下面介紹在使用HttpClient過程中常見的一些問題。
字元編碼
某目標頁的編碼可能出現在兩個地方,第一個地方是伺服器返回的http頭中,另外一個地方是得到的html/xml頁面中。
•在http頭的Content-Type欄位可能會包含字元編碼資訊。例如可能返回的頭會包含這樣子的資訊:Content-Type: text/html; charset=UTF-8。這個頭資訊表明該頁的編碼是UTF-8,但是伺服器返回的頭資訊未必與內容能匹配上。比如對於一些雙位元組語言國家,可能伺服器返回的編碼型別是UTF-8,但真正的內容卻不是UTF-8編碼的,因此需要在另外的地方去得到頁面的編碼資訊;但是如果伺服器返回的編碼不是UTF-8,而是具體的一些編碼,比如gb2312等,那伺服器返回的可能是正確的編碼資訊。透過method物件的getResponseCharSet()方法就可以得到http頭中的編碼資訊。
•對於象xml或者html這樣的檔案,允許作者在頁面中直接指定編碼型別。比如在html中會有 這樣的標籤;或者在xml中會有這樣的標籤,在這些情況下,可能與http頭中返回的編碼資訊衝突,需要使用者自己判斷到底那種編碼型別應該是真正的編碼。
自動轉向
•對於象xml或者html這樣的檔案,允許作者在頁面中直接指定編碼型別。比如在html中會有
自動轉向
根據RFC2616中對自動轉向的定義,主要有兩種:301和302。301表示永久的移走(Moved Permanently),當返回的是301,則表示請求的資源已經被移到一個固定的新地方,任何向該地址發起請求都會被轉到新的地址上。302表示暫時的轉向,比如在伺服器端的servlet程式呼叫了sendRedirect方法,則在客戶端就會得到一個302的程式碼,這時伺服器返回的頭資訊中location的值就是sendRedirect轉向的目標地址。
HttpClient支援自動轉向處理,但是象POST和PUT方式這種要求接受後繼服務的請求方式,暫時不支援自動轉向,因此如果碰到POST方式提交後返回的是301或者302的話需要自己處理。就像剛才在POSTMethod中舉的例子:如果想進入登入BBS後的頁面,必須重新發起登入的請求,請求的地址可以在頭欄位location中得到。不過需要注意的是,有時候location返回的可能是相對路徑,因此需要對location返回的值做一些處理才可以發起向新地址的請求。
另外除了在頭中包含的資訊可能使頁面發生重定向外,在頁面中也有可能會發生頁面的重定向。引起頁面自動轉發的標籤是:。如果你想在程式中也處理這種情況的話得自己分析頁面來實現轉向。需要注意的是,在上面那個標籤中url的值也可以是一個相對地址,如果是這樣的話,需要對它做一些處理後才可以轉發。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/81227/viewspace-694104/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 網站建設過程中常見的問題網站
- Oracle面試過程中常見的二十個問題Oracle面試
- Linux使用過程中常見問題及其解決方法Linux
- 【FAQ】接入華為帳號服務過程中常見問題總結
- 恆訊科技分析:伺服器租用過程中常見的三大問題伺服器
- 【FAQ】接入HMS Core地圖服務過程中常見問題總結地圖
- 中科三方:SSL證書配置過程中常見問題盤點
- 【FAQ】運動健康服務REST API介面使用過程中常見問題和解決方法總結健康服務RESTAPI
- 我使用jest測試專案中常見的問題
- Sybase和Oracle安裝過程中常遇到的問題(轉)Oracle
- 介面測試過程中常見的介面安全性問題,通用測試點整理歸納
- 熟悉面試中常見的的 web 安全問題面試Web
- 開發中常見問題總結
- android 開發中常見問題Android
- windows 中常見的一些埠Windows
- workerman開發過程中遇到的一些常見的問題與解決方法
- [譯] 前端專案中常見的 CSS 問題前端CSS
- vue中常見的問題以及解決方法Vue
- socket程式設計中常見的概念問題!程式設計
- Linux MIPI 除錯中常見的問題Linux除錯
- 開發過程中mysql常見問題MySql
- 使用javamail發信過程中的一些問題及解決方法JavaAI
- 跨域請求中常見的幾個問題跨域
- 數藏平臺運營中常見的問題
- 記錄一個HttpClient超時連線配置不生效的問題排查過程HTTPclient
- vue專案開發過程常見問題Vue
- 程式設計面試過程中常見的10大演算法程式設計面試演算法
- 配置IIS,Apache,PHP過程中遇到的一些問題ApachePHP
- Android 通過httpclient 呼叫碰到的問題總結AndroidHTTPclient
- spring中常見的一些註解Spring
- React TSLint中常見的問題及處理方法React
- 分析IT專案管理中常見的問題和挑戰專案管理
- 邦芒面試:面試中常見的4個致命問題面試
- 問卷調查中常見問題及解決方法
- 連結串列專題——面試中常見的連結串列問題面試
- 使用DBMS_RANDOM過程引發的問題random
- JavaScript 面試中常見演算法問題詳解JavaScript面試演算法
- 前端面試中常見的演算法問題總結前端面試演算法