一般Web瀏覽器在訪問各個網站時,會在HTTP請求的Header里設置User-Agent字段,表示請求者的身份信息,比如在我華為U9200的Android手機上,打開Chrome瀏覽器后,每個訪問請求的User-Agent字段如下:
Mozilla/5.0 (Linux; Android 4.0.3; U9200 Build/HuaweiU9200)
對於安卓App來說,默認情況下的HTTP請求Header是不會帶上這么一串字符串的。如果要帶必須得自己構造了,我摸索了半天,還是找到了達到和瀏覽器同樣格式的設置User-Agent的方法:
DefaultHttpClient httpClient = new DefaultHttpClient(); HttpGet httpGet = new HttpGet(url); // HttpPost httpPost = new HttpPost(url); // 如果是POST請求,則改為注釋掉上面一行 // MY_APP_NAME為APP名稱,MY_APP_VERSION_NAME為應用的版本名 httpGet.setHeader("User-Agent", String.format("%s/%s (Linux; Android %s; %s Build/%s)", MY_APP_NAME, MY_APP_VERSION_NAME, Build.VERSION.RELEASE, Build.MANUFACTURER, Build.ID));
希望這個方法能夠方便廣大App開發者用戶!