Привет.
Делаю обертку для Google RSS Reader. Но застрял на одно месте, получаю ошибку от гугла - Server returned HTTP response code: 401 for URL: http://www.google.com/reader/api/0/token
Похоже на то что приложение не отправляет кук.
Подскажите как побороть.
Заранее спасибо.
Вот код:
Код | package ice.wrappers.google.rss.session;
import java.io.BufferedReader; import java.io.IOException; import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.net.URLConnection; import java.util.StringTokenizer;
/** * User: ICE * Date: 26.02.12 * Time: 22:04 */
public class Session {
private Credentials credentials = null; private String RSS_CLIENT_LOGIN_PATH = "https://www.google.com/accounts/ClientLogin?service=reader";
public Session() {}
public Session(Credentials cred) { credentials = cred; }
public void setCredentials(Credentials cred) { credentials = cred; }
public void connect() throws Exception { String sid = getSID(); System.out.println("SID=" + sid); String token = getToken(sid); System.out.print("Token=" + token); }
private String getSID() throws Exception { StringBuilder path = new StringBuilder(RSS_CLIENT_LOGIN_PATH); path.append("&Email=").append(credentials.getUserName()); path.append("&Passwd=").append(credentials.getUserPassword());
URLConnection conn = (new URL(path.toString())).openConnection(); BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuilder result = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); StringTokenizer tokenizer = new StringTokenizer(result.toString(), "="); while (tokenizer.hasMoreElements()) { if(tokenizer.nextElement().toString().equals("SID")) { return tokenizer.nextElement().toString(); } } return null; } private String getToken(String sid) throws Exception { StringBuilder cookie = new StringBuilder(); cookie.append("Name=SID;").append("Value=").append(sid).append(";"); cookie.append("Path=/;").append("Domain=.google.com");
URLConnection conn = (new URL("http://www.google.com/reader/api/0/token")).openConnection(); conn.setRequestProperty("Cookie", cookie.toString()); conn.connect();
BufferedReader reader = new BufferedReader(new InputStreamReader(conn.getInputStream())); StringBuilder result = new StringBuilder(); String line; while ((line = reader.readLine()) != null) { result.append(line); } reader.close(); return result.toString(); } }
|
|