Правильная обработка перенаправлений с NSURLConnection

Для целей этого я собираюсь притвориться, что исходный URLhttp://host/form и новый URLhttps://host/form, (Обратите внимание, что до того, как я отправлю это, оба URL-адреса будут безопасными. Однако небезопасный к безопасности кажется удобным перенаправлением, чтобы проверить это.)

Я получаю доступ к веб-API с помощьюNSURLConnection это перенаправляет меня В основном, я хочу взять все, что я только что представилhttp://hostaform и повторно отправить егоhttps://host/form, Я думал, что это будет поведение по умолчанию, но похоже, что тело теряется в перенаправлении.

Так что я думаю, что мне нужно справиться сconnection:willSendRequest:redirectResponse: событиеNSURLConnectionделегировать и заново прикрепить тело. Проблема в том, что это сообщение выглядит ужасно недокументированным. Единственная информация, которую я могу найти по этому методу,Ссылка класса NSURLConnection, что не очень полезно. Среди прочего, это включает в себя следующее:

redirectResponse: URL-ответ, вызвавший перенаправление. Может быть ноль в случаях, когда этот метод не отправляется в результате вовлечения делегата в обработку перенаправления.

Я не уверен, что это значит. В сочетании с начальнымwillSendRequest: заклинание, я думаю, что это означает,willSendRequest: отправляется даже для моего первоначального запроса, до ответа перенаправления. Это правильно?

Поэтому я добавил в свой делегат код для дополнительного сохранения тела и добавилwillSendRequest: ч, Andler:

- (NSURLRequest *)connection: (NSURLConnection *)inConnection
             willSendRequest: (NSURLRequest *)inRequest
            redirectResponse: (NSURLResponse *)inRedirectResponse;
{
    if (inRedirectResponse) {
        NSMutableURLRequest *r = [[inRequest mutableCopy] autorelease];
        [r setURL: [inRedirectResponse URL]];
        [r setHTTPBody: body];
        return r;
    } else {
        return inRequest;
    }
}

Не работает Но я даже не уверен, что это правильный подход. Это кажется чрезмерно хакерским для меня. Что мне делать? Это где-нибудь задокументировано? Пока что я не нашел ничего полезного в документации Apple или использовании Google.

(Это на iPhone, хотя в этих классах нет особой разницы.)