我試圖將"Accept-Language" header附加到我正在獲取的請求中,但是當我使用Charles Proxy檢查請求時,那麼標頭不在那裏。我像這樣添加標題。HttpURLConnection中不尊重AddRequest
private HttpURLConnection getConnection(Uri uri) throws Exception {
URL url = new URL(uri.toString());
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoInput(true);
urlConnection.addRequestProperty(ACCEPT_LANGUAGE_HEADER, LanguageProvider.getLanguage());
return urlConnection;
}
奇怪的是,如果我添加後記錄requestproperties然後我可以看到它在HttpURLConnection中設置。爲什麼在發送之前將其刪除?
UPDATE
我注意到下面的標題,其中自動添加
主機appname-api-staging.herokuapp.com
的User-Agent的Dalvik/1.6.0(Linux的; U; Android 4.3.1; Galaxy Nexus Build/JLS36I)
代理連接保持活動
我修改了代碼,試圖改變用戶代理等等之類
URL url = new URL(uri.toString());
HttpURLConnection urlConnection = (HttpURLConnection) url.openConnection();
urlConnection.setDoInput(true);
urlConnection.addRequestProperty("User-Agent", "test");
urlConnection.setRequestProperty(ACCEPT_LANGUAGE_HEADER, LanguageProvider.getLanguage());
瞧這改變了主機頭「測試」。添加新的請求屬性和修改舊的請求屬性有什麼區別?
我使用httpurlconnection而不是httppost。這是推薦的類在Android – jiduvah 2014-10-31 13:59:05
mmh的更高版本...使用HttpClient,這樣你就可以控制HTTP結果代碼,標頭,餅乾,aaaaaall常見的東西 – eduyayo 2014-10-31 14:00:21
安卓團隊建議使用httpurlconnection它有相同的和更多功能http://android-developers.blogspot.de/2011/09/androids-http-clients。html 我寧願修復這個問題,而不是實施一個非常大的工作,圍繞 – jiduvah 2014-10-31 14:04:52