2010-11-23 32 views
3

J'ai un problème avec l'authentification API d'édition GReader. Je peux faire le HTTPS (https://www.google.com/accounts/ClientLogin) pour l'authentification et Google renvoie trois jetons (SID, LSID, AUTH), mais pas de HSID.Problème d'authentification de l'API de modification Google Reader

Lorsque je tente d'ajouter un nouveau flux http://www.google.com/reader/api/0/subscription/quickadd?ck=1290452912454&client=scroll avec des données POST T = djj72HsnLS8293 & AjoutExpress = blog.martindoms.com/alimentation/sans HSID dans Cookie, est le code d'état de réponse 401. SID et HSID en tout Cookie fonctionne correctement.

Où puis-je trouver cette chaîne HSID?

Merci pour vos réponses.

Mon code:

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(); 
     } 
    } 

Répondre

3

On dirait que vous utilisez peut-être vieille d'info comme référence. Google est passé à l'utilisation d'auth maintenant.

Vous devez remplacer getSid() par une fonction getAuth().

Ensuite, cette ligne

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

devrait maintenant ce

requestPost.addHeader("Authorization", "GoogleLogin auth=" + _auth);