HTTP レスポンスのステータスコードを取得する : Objective-C プログラミング

PROGRAM


HTTP レスポンスのステータスコードを取得する

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

それによって得られたレスポンスのうち、レスポンスヘッダーに関する情報は connection:didreceiveResponse: メソッドが呼ばれたときに NSURLResponse 型の情報として受け取れます。

 

HTTP アクセスした場合は、ここで得られたレスポンスに 200 とか 404 といったステータスコードもちゃんと含まれているのですけど、それを取得するには少し工夫が要ります。

HTTP アクセスで取得できる NSURLResponse は、実際にはそこから派生した NSHTTPURLResponse 型で手に入っているので、次のような感じで、そこからステータスコードを取得します。

// 念のため、取得できたレスポンスが NSHTTPURLResponse であるかを調べます。

if ([self.response isKindOfClass:[NSHTTPURLResponse class]])

{

// NSHTTPURLResponse であれば、そこからステータスコードを取得できます。

NSInteger status = [(NSHTTPURLResponse*)response statusCode];

}

これで、レスポンスのステータスコードを取得することができました。

[ もどる ]