3

認証 GReader 編集 API に問題があります。認証のために HTTPS (https://www.google.com/accounts/ClientLogin) を実行できます。Google は 3 つのトークン (SID、LSID、AUTH) を返しますが、HSID は返しません。

新しいフィードhttp://www.google.com/reader/api/0/subscription/quickadd?ck=1290452912454&client=scroll with POST data T=djj72HsnLS8293&quickadd=blog.martindoms.com/feed/ を HSID なしで追加しようとするとCookie は、応答ステータス コード 401 です。Cookie の SID と HSID を使用すると、すべて正常に動作します。

この HSID 文字列とは何ですか?どこで確認できますか?

回答ありがとうございます。

私のコード:

public void addNewFeed() throws IOException {
        HttpPost requestPost = new HttpPost("http://www.google.com/reader/api/0/subscription/quickadd?ck=1290452912454&client=scroll");
        getSid();          
        List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>();
        DefaultHttpClient client = new DefaultHttpClient();
        requestPost.addHeader("Cookie", "SID=" + _sid + "; HSID=" + _hsid);
        try {
            nameValuePairs.add(new BasicNameValuePair("T", _token));
            nameValuePairs.add(new BasicNameValuePair("quickadd", "blog.martindoms.com/feed/"));
            requestPost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
            HttpResponse response = client.execute(requestPost);

            InputStream in = response.getEntity().getContent();
            BufferedReader reader = new BufferedReader(new InputStreamReader(in));
            StringBuilder str = new StringBuilder();
            String line = null;

            while ((line = reader.readLine()) != null) {
                str.append(line + "\n");
            }
            System.out.println(str.toString());
            in.close();
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }
4

1 に答える 1

3

古い情報を参考にしているようです。Google は auth の使用に切り替えました。

getSid() を getAuth() 関数に置き換える必要があります。

次に、この行

requestPost.addHeader("Cookie", "SID=" + _sid + "; HSID=" + _hsid);

今はこうあるべき

requestPost.addHeader("Authorization", "GoogleLogin auth=" + _auth);
于 2010-12-06T21:20:44.143 に答える