【问题标题】:difference between nsurlconnection and browser access?nsurlconnection 和浏览器访问的区别?
【发布时间】:2012-10-11 08:52:00
【问题描述】:

我正在开发一个非常简单的应用程序,它访问一个书面的 url。所以我想知道通过nsurlconnection访问和仅使用浏览器访问有什么区别。导致一些站点响应,但当我使用 nsurlconnection 时它们不发送数据。

- (void)getWikiData:(NSString *)keyword{
NSString* tmpURL = @"http://wikipedia.simpleapi.net/api?keyword=";
NSString* encodedString;
CFStringRef strRef = CFURLCreateStringByAddingPercentEscapes(NULL, (CFStringRef)keyword, NULL, (CFStringRef)@"!*'();:@&=+$,/?%#[]~", kCFStringEncodingUTF8);
encodedString = [NSString stringWithString:(NSString *)strRef];
CFRelease(strRef);
[tmpURL stringByAppendingString:encodedString];
[tmpURL stringByAppendingString:@"&output=html"];
NSURL *url = [NSURL URLWithString:tmpURL];

NSString *userAgent = @"Custom User Agent";
NSMutableURLRequest *request = [[[NSMutableURLRequest alloc] initWithURL:url] autorelease];
[request setValue:userAgent forHTTPHeaderField:@"User-Agent"];

connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];
}

- (void)connection:(NSURLConnection *)connection didReceiveResponse:(NSHTTPURLResponse *)response{
NSLog(@"Receive Response");

}

- (void)connection:(NSURLConnection *)connection didReceiveData:(NSData *)data{
NSLog(@"Receive Data");
}

提前致谢。

【问题讨论】:

    标签: objective-c nsurlconnection nsurl nsurlrequest


    【解决方案1】:

    不同之处在于生成的应用程序的用户代理字符串。 MobileSafari 将自己报告为“Safari,iOS 像 Mac OS X”,但是,一个普通的 NSURLConnection 发送一个 CFNetwork 描述,这对于大多数站点进行“浏览器”(而不是“客户端”)检测不是很有用,那就是为什么他们可能拒绝向无法识别的用户代理发送数据。

    【讨论】:

    • 所以如果我可以设置 NSURLConnection 的用户代理字符串,我从任何站点获取数据都没有问题?
    • @MungunbatEnkhbayar 不能保证,但您可能更接近解决方案。查看[NSMutableRequest setValue:forHTTPheaderField:]"User-Agent" HTTP 标头值。
    • 我在下面试过了。 [NSMutableRequest setValue:forHTTPheaderField:"User-Agent"] 但是没用。
    • @Enkhbayar 这甚至无法编译。拿个 Objective-C 教程,你连语法都不知道。
    • 我在我的问题中加入了一些代码。那么哪个部分没有编译??
    猜你喜欢
    • 1970-01-01
    • 2013-06-02
    • 2019-01-28
    • 1970-01-01
    • 1970-01-01
    • 2012-06-09
    • 2012-11-14
    • 2022-01-13
    • 1970-01-01
    相关资源
    最近更新 更多