如何处理请求重定向用GET参数的URL?(How to handle redirecting url

2019-09-17 04:01发布

我想从一个服务器(CSS)的HTML响应。

NSString *urlstr = [[NSString alloc] initWithFormat:@"http://www.someSiteThatRedirectsWithGetParameters.com?parameter1=1&parameter2=2"];

NSURL *url = [ NSURL URLWithString:urlstr];     
NSMutableURLRequest *urlRequest = [ NSURLRequest requestWithURL: url];

NSData data = [NSURLConnection sendSynchronousRequest:urlRequest returningResponse:&response error:&error];

NSURL *lastURL=[response URL];

NSLog(@"Last url %@", lastURL);

我得到最后URL作为www.someSiteThatRedirectsWithGetParameters.com,因此没有得到对原请求的URL的HTML页面。

为什么会这样,我该如何解决这个问题?

编辑

这是所有我所到目前为止已经试过: 获得最后的重定向URL中的iOS 5? 但我还是没能做到什么,我想,即:把原来的GET请求(通过重定向会),其具有的URL参数的html页面源?

Answer 1:

我得到最后URL作为www.someSiteThatRedirectsWithGetParameters.com,因此没有得到对原请求的URL的HTML页面。

如果您的请求将被重定向到,这是因为服务器为你所连接的告诉你,没有在页面的网址,你先提出的要求其,你应该使用重定向的URL来代替。 这是一个重定向响应的整点。

如果你得到的响应是HTTP 303 ,新的请求将被适当地从POST改为GET。 这有时做是为了避免在刷新页面将重新提交不良后果的原始请求的情况。 在这种情况下,您发布请求某些URL,服务器接受请求,但客户端重定向到最终显示服务器的响应不同的URL响应。

为什么会这样,我该如何解决这个问题?

我已经解释了“为什么”的上方。 该“办法”是接受来自服务器的响应,并按照重定向到包含服务器的响应的URL。



Answer 2:

我会尝试发送两个请求的方法。 发送所述第一请求,则的redirectUrl将是响应。 然后做出反应的一个新的URL,发送与GET-参数的URL的请求。 我还没有尝试过,但我想它可以工作。



文章来源: How to handle redirecting urls with get parameters in the request?