NSURLConnection の User-Agent を変更する : Objective-C プログラミング

PROGRAM


NSURLConnection の User-Agent を変更する

Objective-C では、NSURLConnection に NSURLRequest を渡して、指定した URL のデータを取得できるようになっています。

そして HTTP へアクセスするとき、アクセス元は自分の情報を "User-Agent" ヘッダーを使って通知します。

例えば Internet Explorer の場合は "Mozilla/5.0 (compatible; MSIE 9.0; Windows NT 6.1; WOW64; Trident/5.0)" などのようになりますし、NSURLConnection の場合には、既定では "EzPCAdjustTools/12 CFNetwork/548.1.4 Darwin/11.0.0" といった感じのものになっています。

 

この User-Agent ヘッダーは、NSURLConnection では、好みの名前に変更できます。

そのためには、NSURLConnection に渡す URL の情報を、NSURLRequest ではなく NSMutableURLRequest クラスで作成して、それの HTTP ヘッダーとして、好きな名前を値にした "User-Agent" ヘッダーを追加します。

// URL 情報は NSMutableURLRequest で用意します。

NSMutableURLRequest* request = [[NSMutableURLRequest alloc] initWithURL:url];

 

// User-Agent ヘッダーを好きなものに変更します。

[request setValue:@"Mozilla/5.0 (compatible; EZ-NET PCAdjustTools 1.0)" forHTTPHeaderField:@"User-Agent"];

このようにして NSMutableURLRequest に必要な URL 情報を揃えたら、後はこれを NSURLConnection に渡してあげれば、先ほど指定したものを User-Agent の値として、接続先に送るようになります。

[ もどる ]