如何在android中使用HttpUrlConnection类将cookie添加到url?

时间:2016-04-25 08:00:07

标签: android json cookies

我试图从url解析json数据,当我尝试创建连接时,它会抛出异常 java.net.ProtocolException:在读取响应后无法写入请求正文

我收到了未找到的回复消息。

我检查了网页浏览器中的网址,当我登录我的凭据时,它显示了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。 请帮帮我。

1 个答案:

答案 0 :(得分:2)

根据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,只需在URLConnection上调用connect()即可   我们为其添加了cookie属性:

urlConn.connect()