2016-04-25 57 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

相关问题