我想移植一個使用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