【问题标题】:Passing cookie with an HTTT GET使用 HTTP GET 传递 cookie
【发布时间】:2014-09-25 15:46:00
【问题描述】:

我正在尝试通过reddit api 获取用户子版块列表。目前我可以为login 发布一个返回cookie 和modhash 的帖子。这些是我在下面传递给我的方法的参数。但是,每次我调用该函数时,我都会得到一个空响应:

“{}”

如何通过 HTTPGET 传递 cookie 和 modhash 以获得有效响应?

public void getUserSubreddits(String[] loginInfo){
    HttpClient client = new DefaultHttpClient();
    URL url = null;
    try {
        url = new URL("http://www.reddit.com/subreddits/mine/.json?limit=100");


        HttpGet httpGet = new HttpGet(String.valueOf(url));
        client.getParams().setParameter(CoreProtocolPNames.USER_AGENT, System.getProperty("http.agent"));
        httpGet.addHeader("cookie", loginInfo[1]);
        httpGet.addHeader("modhash", loginInfo[0]);

        HttpResponse response = client.execute(httpGet);

        HttpEntity ht = response.getEntity();

        BufferedHttpEntity buf = new BufferedHttpEntity(ht);

        InputStream is = buf.getContent();

        BufferedReader r = new BufferedReader(new InputStreamReader(is));

        StringBuilder total = new StringBuilder();
        String line;
        while ((line = r.readLine()) != null) {
            total.append(line);
        }
        Log.d(TAG,total.toString());

    } catch (Exception e) {
        e.printStackTrace();
    }

}

【问题讨论】:

  • 你试过用大写的“Cookie”作为标题名称吗?

标签: android cookies http-get reddit


【解决方案1】:

这是一个简单的错误。对于将来尝试此操作的任何人,我通过使用 Chrome 检查http://www.reddit.com/subreddits/mine/.json?limit=100 url 上的活动会话的标头来解决问题,并发现 cookie 标头以:

reddit_session

所以我把modhash去掉了,把我的头参数改成了:

  httpGet.addHeader("cookie", "reddit_session="+loginInfo[1]+";");

这样我得到了一个有效的回应。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-07-19
    • 1970-01-01
    • 1970-01-01
    • 2014-08-13
    • 2014-06-05
    • 2015-09-07
    • 2014-04-30
    • 2014-05-14
    相关资源
    最近更新 更多