程序訪問一個地址時候報400錯誤,瀏覽器訪問正常怎麼解決

0dDJfwNLfbU

最近凱哥在調凱哥優惠淘的時候,發現之前好好的程序,忽然不能用了。因而就本地斷點,發現了以下錯誤:瀏覽器

0dDIWgRdQQK

程序經過httpClient訪問一個地址的時候,提示:server returned HTTP Response code :400 fro URL:XXXX這個錯誤。不對啊,之前的沒問題如今怎麼就忽然有問題了?並且將程序訪問的url地址放到瀏覽器中就能夠正常訪問的。爲何在程序中就訪問不了呢?ide

因而就把訪問的URL 複製下來,一個一個對比,發現,原來,程序訪問出錯的url中有中文。懷疑是否是由於中文沒有進行URL編碼致使【ps:最後獲得的結論確實是中文沒有URL編碼】?編碼

Jave中對URL進行url編碼,你們都知道,就是URLEncoder.encode()這個方法。簡單啊!該就是唄。因而凱哥就把整個URL進行encode.結果你們可想而知,把http://xxx 中的://也進行了encode.經過httpclient固然訪問不了的。url

程序spa

訪問前的URL:xxx?name=凱哥==>結果訪問失敗code

修改後的URL:xxx?name=URLEncoder.encode("凱哥","utf8")==>訪問成功orm

因而凱哥就修改編碼方式,只對中文部分的參數進行encode.修改以後,程序就正常訪問成功了。server

總結:blog

若是程序訪問一個url出現server returned HTTP Response code :400 fro URL這個錯誤,可是在瀏覽器中訪問一樣的url沒問題的話,就要考慮是否是由於訪問的url中有特殊字符。如空格、逗號、中文等。把這些特殊字符進行url編碼後在使用程序進行訪問或許就能成功了。須要注意,在進行url編碼的時候,指定編碼的字符集ci

相關文章
相關標籤/搜索