2016-04-25 62 views
1

我試圖從URL解析JSON數據,當我嘗試建立連接時,它拋出異常的 java.net.ProtocolException:響應已讀如何在android中使用HttpUrlConnection類添加cookie到url?

我以後不能寫請求主體得到響應消息爲未找到

我檢查了網頁瀏覽器中的url,它顯示了當我登錄wuth我的憑據時的Json數據。

所以,我發現我需要添加cookie到我的連接,但我不知道如何做到這一點。

public void parseData(String cookie){ 
    HttpUrlConnection connection; 

    try{ 
    URL url = new URL(params[0]); 
        connection = (HttpURLConnection) url.openConnection(); 

        connection.setRequestProperty("Cookie", cookie); 
        Log.e(TAG, "cookie " + cookie); 

        connection.setDoOutput(true); 
        connection.setDoInput(true); 
        connection.setRequestMethod("GET"); 

        connection.connect(); 
Log.e(TAG,connection.getResponseMessage()); 

    /** 
    here i'm trying to parse the data 
    using BufferedReader calss 
    **/ 

    } 
    catch(IOException e){} 
    } 

我需要在連接中添加cookie。 請幫助我。

+0

可能重複:http://stackoverflow.com/a/16171708/4310784 –

+0

我也試過這種方式。但是我得到一個異常,因爲「java.net.ProtocolException:在讀取響應之後無法寫入請求主體」能告訴我爲什麼會拋出這個異常。 @Mohammad Z – Madhan

+0

@Madhan:對不起,刪除了我的答案,因爲我意識到我錯了。 – Tigger

回答

1

根據this link 你可以這樣做:

值必須在調用connect方法進行設置:

URL myUrl = new URL("http://www.hccp.org/cookieTest.jsp"); 
URLConnection urlConn = myUrl.openConnection(); 

創建cookie字符串:

String myCookie = "userId=igbrown"; 

將cookie添加到請求中:使用 setRequestProperty(String name,String value);方法,我們將添加名爲「Cookie」的 屬性,將 上一步中創建的cookie字符串作爲屬性值。

urlConn.setRequestProperty("Cookie", myCookie); 

發送cookie到服務器:要發送的cookie,只需調用connect()上,我們添加了cookie的屬性的URLConnection :

urlConn.connect() 
+0

實際上我和你的答案一樣,但它引發了一個異常,我在我的問題中提到了一個異常,並且響應代碼爲404。 – Madhan

相關問題