在iOS中处理带有空主体的重定向HTTP POST请求

时间:2012-12-18 16:48:20

标签: ios http redirect post nsurlrequest

我正在开发一个与远程WS交互的iOS应用程序。 由于WS的URL可能会不时更改,因此应用程序应将所有请求发送到固定且稳定的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)是以空体(无参数)发送的。看起来原始请求的所有参数都会丢失,即使我使用原始请求的精确副本。

你们觉得怎么样?我怎么能解决这个问题?

谢谢!

1 个答案:

答案 0 :(得分:0)

我认为问题与以下事实有关:根据HTTP标准,重定向的请求应该使用GET方法,因此请求正文为空。

我通过返回nil而不是r并使用正确的URL生成新请求来解决问题。