0

リモート WS と対話する iOS アプリに取り組んでいます。WS の URL は時々変更される可能性があるため、アプリはすべての要求を固定の安定した URL に送信し、WS の実際の URL へのリダイレクトを処理する必要があります。

これが私のコードです:

- (NSURLRequest *)connection: (NSURLConnection *)connection
         willSendRequest: (NSURLRequest *)request
        redirectResponse: (NSURLResponse *)redirectResponse {

if (redirectResponse) {
    NSMutableURLRequest *r = [lastRequest mutableCopy];
    [r setURL: [request URL]];

    return r;
} else {
    return request;
}
}

lastRequest は、送信された元のリクエストのコピーです。

ここに私の問題があります: 理由はわかりませんが、新しいリクエスト、つまり r が空の本文 (パラメーターなし) で送信されます。元のリクエストの正確なコピーを使用しても、元のリクエストのすべてのパラメータが失われているようです。

皆さんはどう思いますか?この問題を解決するにはどうすればよいですか?

ありがとう!

4

1 に答える 1

0

問題は、HTTP の標準に従って、リダイレクトされた要求は GET メソッドを使用する必要があるため、要求の本文が空であるという事実に関連していると思います。

r の代わりに nil を返し、正しい URL で新しいリクエストを生成することで問題を解決しました。

于 2012-12-19T16:24:10.103 に答える