谷歌阅读器api标记为读取返回411错误(在android上使用java)

时间:2012-06-29 01:04:39

标签: android google-reader

我正在Android平台上进行谷歌阅读器的一些开发。

使用google reader api,我可以成功获取RSS列表。但是当我想将RSS项标记为已读时,我得到了“需要411长度”错误。这是我的代码:

    HttpClient httpclient = new DefaultHttpClient();
    HttpPost httppost = new HttpPost(
            "http://www.google.com/reader/api/0/edit-tag");
    httppost.addHeader("Authorization", auth);

    List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
    nameValuePairs.add(new BasicNameValuePair("i", itemId));
    nameValuePairs.add(new BasicNameValuePair("a",
            "user/-/state/com.google/read"));
    nameValuePairs.add(new BasicNameValuePair("async", "true"));
    nameValuePairs.add(new BasicNameValuePair("T", token));
    nameValuePairs.add(new BasicNameValuePair("s", feedUrl));
    try {
        httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
        HttpResponse response = httpclient.execute(httppost);
        Toast.makeText(getApplicationContext(),
                EntityUtils.toString(response.getEntity()),
                Toast.LENGTH_LONG).show();
    } catch (UnsupportedEncodingException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (ClientProtocolException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    } catch (IOException e) {
        // TODO Auto-generated catch block
        e.printStackTrace();
    }

有什么问题吗?

1 个答案:

答案 0 :(得分:0)

我自己解决了这个问题。

我收到此错误是因为auth部分在结尾处有一个额外的换行符'\n'。所以我使用trim()方法删除它。

现在有效。我希望这可以帮助某人。