1

特定のWebサイトにリクエストを送信すると、シミュレーターで必要に応じてXML応答を取得しますが、デバイスでリダイレクトページを取得します。これは、モバイルブラウザを使用していることを検出しているためだと思います(モバイルSafariでも同様の結果が発生します)が、リクエストのユーザーエージェント文字列をラップトップブラウザのUAに設定し、残りを空白にしています(私もUAだけを設定してみました):

NSMutableURLRequest* request = [NSMutableURLRequest requestWithURL:[NSURL URLWithString:url]                        
                                                       cachePolicy:NSURLRequestUseProtocolCachePolicy
                                                   timeoutInterval:60.0];
[request setAllHTTPHeaderFields:[NSDictionary dictionaryWithObject:@"Mozilla/5.0 (Macintosh; U; Intel Mac OS X 10.6; en-US; rv:1.9.2.11) Gecko/20101012 Firefox/3.6.11" forKey:@"User-Agent"]];
NSURLConnection* _connection = [[NSURLConnection alloc] initWithRequest:request delegate:self];

私がモバイルブラウザを使用していることをWebサイトがまだ検出しているのはどうしてですか?同じGETは、情報がゼロのtelnetを介して機能します。これは、デフォルトの応答がデスクトップバージョンであることを意味します。

4

1 に答える 1

0

Mobile Safari は、シミュレーターで http->https を自動的にリダイレクト/再ネゴシエートしますが、デバイスではそれを行いません。

于 2010-10-29T20:42:03.620 に答える