我想移植一个使用iPhone机械化的python应用程序。这个应用程序需要登录到一个网页,并使用该网站的cookie转到该网站上的其他页面来获取一些数据。管理iPhone上的HTTP Cookie
随着我的python应用程序,我使用自动cookie管理机械化。对于可移植到iPhone的Objective C,有没有类似的东西?
感谢您的任何帮助。
我想移植一个使用iPhone机械化的python应用程序。这个应用程序需要登录到一个网页,并使用该网站的cookie转到该网站上的其他页面来获取一些数据。管理iPhone上的HTTP Cookie
随着我的python应用程序,我使用自动cookie管理机械化。对于可移植到iPhone的Objective C,有没有类似的东西?
感谢您的任何帮助。
NSURLConnection
为您提供免费的cookie管理。来自URL Loading System Programming Guide:
URL加载系统自动发送任何适合NSURLRequest存储的cookie。除非请求指定不发送cookie。同样,根据当前的Cookie接受策略,接受在NSURLResponse中返回的Cookie。
+1这应该是正确的答案。 –
如何检查NSURLRequest是否使用Cookie发送?如何将其记录到控制台? – trillions
请参阅' - [NSHTTPCookieStorage cookiesForURL:]'。 –
您可以使用NSURLConnection类来执行HTTP请求以登录网站并检索cookie。要执行请求,只需创建一个NSURLConnection实例并为其分配一个委托对象。
NSURLRequest *request = [NSURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]];
NSURLConnection *connection = [NSURLConnection connectionWithRequest:request delegate:self];
然后,实现委托方法。
- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)response
{
NSHTTPURLResponse *HTTPResponse = (NSHTTPURLResponse *)response;
NSDictionary *fields = [HTTPResponse allHeaderFields];
NSString *cookie = [fields valueForKey:@"Set-Cookie"]; // It is your cookie
}
保留或复制cookie字符串。当你想执行另一个请求时,将它添加到你的NSURLRequest实例的HTTP头部。
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:@"http://www.google.com/"]];
[request addValue:cookie forHTTPHeaderField:@"Cookie"];
@ zonble的答案只适用于我的本地主机; 如果服务器没有在本地运行,NSDictionary *字段中缺少“Set-Cookie”标头= [HTTPResponse allHeaderFields];
最后我发现@ benzado的解决方案工作正常。 另请参阅:iphone nsurlconnection read cookies @Tal Bereznitskey的回答。
A * Python * app? 'WWW :: Mechanize'是一个Perl库。 –
还有一个python端口。 http://wwwsearch.sourceforge.net/mechanize/ – dan