這是一個#錨斷裂是有點怪異之一。我使用的是HTTPClient 4.1.2,它似乎只要發現URL中帶有'#'之類的東西,它就會完全獲得URL中的#。了HTTPClient - HTTP獲取與在重定向URL
例如,試圖獲取URL http://stks.co/eWt
將重定向到URL http://news.ichinastock.com/2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/#.Tpw-xG61XjU.twitter
。現在這個URL是實時的,但問題在於HTTPClient發送一個get請求,URI的設置爲URI: /2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/#.Tpw-xG61XjU.twitter
,這導致服務器發回404頁面未找到。
查看IE,Firefox和cURL發送的GET,它們都從URI的末尾去掉#...,例如cURL GET請求URI被設置爲URI:/2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/
- 所有# ...已被刪除。這是針對完全相同的條目URL http://stks.co/eWt
。
作爲測試,發送該原始URL到了HTTPClient(即HttpGet httpget = new HttpGet("http://news.ichinastock.com/2011/10/jack-ma-alibaba-has-prepared-20-billion-to-acquire-yahoo/#.Tpw-xG61XjU.twitter");
)給出相同的404未找到結果。
所以,問題是是否有在了HTTPClient可以設置,使之類的東西尾隨#...可以自動從URL中移除任何設置。或者我會如何去手動刪除這些URL(記住我需要捕獲所有的重定向網址)?
這將有助於HTTP。: //stackoverflow.com/questions/4251841/400-error-with-httpclient-for-a-link-with-an-anchor –
是的,我看到了這一點。但問題是我不知道,如果URL有一個錨#在它裏面,所有的UR Ls正在從一個簡短的URL服務中提供服務,這個簡短的URL服務將#anchor保留在URL中,並且HTTPClient盲目地從重定向301中獲取此信息,並嘗試獲取該頁面... – NightWolf