[英]Not getting the right header response code with HttpUrlConnection
我有一個簡單的情況。
給定一個URL,服務器標頭響應代碼將為HTTP 200。
現在,我嘗試使用另一個URL進行嘗試,其中服務器FIRST響應HTTP 302(找到),然后THEN重定向並響應報頭HTTP 200代碼。
因此,在第二種情況下, 為什么connection.getResponseCode()
不返回HTTP 302而是直接返回HTTP200。我實際上對在初始HTTP 302響應中檢查標頭響應感興趣 。
這是簡化的HttpUrlConnection代碼(幾乎是許多開源實現的副本)。
private int responseCode;
private Map<String, List<String>> headerFields;
public String getString(String url)
{
String response = null;
try
{
URL mUrl = new URL(url);
HttpURLConnection connection = (HttpURLConnection) mUrl.openConnection();
connection.setRequestMethod("GET");
responseCode = connection.getResponseCode();
headerFields = connection.getHeaderFields();
/* boilerplate buffered reader stuffs for getting stream + StringBuilder etc etc.*/
}
finally
{
connection.disconnect();
}
return response;
}
額外信息:HTTP 302包含標頭鍵:“ location”,盡管如預期的那樣, connection.getheaderFields()
不包含它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.