我正在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();
}
有什么问题吗?
答案 0 :(得分:0)
我自己解决了这个问题。
我收到此错误是因为auth
部分在结尾处有一个额外的换行符'\n'
。所以我使用trim()
方法删除它。
现在有效。我希望这可以帮助某人。