【发布时间】:2011-11-22 15:08:52
【问题描述】:
我正在尝试在 iPhone APP 中实现谷歌阅读器,目前我已成功收到 sid 和 auth。当我尝试使用 GET 调用 Endpoints API 时出现问题。代码如下:
ASIHTTPRequest *request = [self requestForAPIEndpoint:@"https://www.google.com/reader/api/0/subscription/list?output=json"];
[request setDelegate:self];
[request startAsynchronous];
- (ASIHTTPRequest *) requestForAPIEndpoint: (NSString *) apiEndpoint
{
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString: apiEndpoint]];
[request addRequestHeader: @"User-Agent" value: @"YourClient"];
[request addRequestHeader: @"Cookie" value: signature];
NSLog(@"Sig = %@",signature);
[request addRequestHeader: @"Authorization" value: autho];
return request.
}
授权和签名设置正确。但是,每次我在 - (void)requestFailed:(ASIHTTPRequest *)request 方法中得到回调。我做错了什么?我是否需要注册一些访问 API 的位置并将用户代理设置为该名称??
我修改了 requestForAPIEndpoint 方法如下,然后我也遇到了同样的问题。
- (ASIHTTPRequest *) requestForAPIEndpoint: (NSString *) apiEndpoint
{
NSDictionary *properties = [[[NSMutableDictionary alloc] init] autorelease];
[properties setValue:signature forKey:NSHTTPCookieValue];
[properties setValue:@"SID" forKey:NSHTTPCookieName];
[properties setValue:@".google.com" forKey:NSHTTPCookieDomain];
[properties setValue:@"1600000000" forKey:NSHTTPCookieExpires];
[properties setValue:@"/" forKey:NSHTTPCookiePath];
NSHTTPCookie *cookie = [[[NSHTTPCookie alloc] initWithProperties:properties] autorelease];
ASIHTTPRequest *request = [ASIHTTPRequest requestWithURL:[NSURL URLWithString: apiEndpoint]];
[request setUseCookiePersistence:NO];
[request setRequestCookies:[NSMutableArray arrayWithObject:cookie]];
[request addRequestHeader: @"User-Agent" value: @"YourClient"];
[request addRequestHeader: @"Authorization" value: autho];
return request;
}
【问题讨论】:
标签: iphone objective-c ios asihttprequest google-reader