1

HTTP ステータス コードが 200 に等しくない場合、つまり、それに応じていくつかの変更を加える必要があるというシナリオがあります。しかし、HTTP_OKこれらの変更を内部で行いたくありません。(void) connection:(NSURLConnection *)connection didReceiveResponse:(NSURLResponse *)NSURLConnectionDelegate

応答ステータス コードを確認せずに URL が正常に開かないことを確認する他の方法はありますか?

4

5 に答える 5

1

今と同じように応答コードを確認する必要がありますが、HTTP GET または POST 要求を実行する代わりに、HTTP HEAD 要求を作成して、コンテンツなしでヘッダーのみを返すことができます。AndroidアプリでWebから取得した壊れたリンクをチェックするためにこれを行っていました。

于 2013-05-07T13:45:21.360 に答える
0

他の方法はないと思います。すべての応答をロードしたくない場合は、HTTP コードを受け取った後に要求を強制終了できます[connection cancel]

も参照できますがdidFailWithError、404 および 500 エラーでは機能しません...

于 2013-05-07T12:59:04.663 に答える
0

私もそう感じた。didFinishLoadingまたはで応答コードを処理しますdidFailWithError

lastHTTPResponsetypeという名前のプロパティを作成してNSHTTPURLResponse
に設定しdidReceiveResponse、後で処理します。各応答で設定すると、リダイレクト (301 または 302) ではなく、最後のコードが取得されます。

複数の接続がある場合は、それぞれにプロパティが必要になります。

応答を早く処理したい場合もありますが、独自のサーバーを呼び出している場合は、ほとんどの場合、その必要はありません。

于 2013-05-07T13:55:46.050 に答える