簡體   English   中英

使用HttpUrlConnection無法獲得正確的標頭響應代碼

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM