iOS:尝试在iOS上抓取一个页面,尽管发送的参数与浏览器发送的参数相同

iOS:尝试在iOS上抓取一个页面,尽管发送的参数与浏览器发送的参数相同,ios,jsp,cookies,web-scraping,nsurlconnection,Ios,Jsp,Cookies,Web Scraping,Nsurlconnection,我正在努力刮一页。这是一个jsp服务器。有一个访客登录,所以只要打开URL,我就会被重定向到索引页面,在那里我将以访客身份登录,我会得到一个cookie,所有东西都可以在浏览器上正常工作 我想在iOS应用程序上执行此操作。所以在这里,我点击索引URL并获取请求中的cookie(以及浏览器发送的其他参数),以向服务器发出进一步的请求。我从chrome中复制了这个,并将其复制为curl GET URL HTTP/1.1 Host: HOST Connection: keep-alive Cache-

我正在努力刮一页。这是一个jsp服务器。有一个访客登录,所以只要打开URL,我就会被重定向到索引页面,在那里我将以访客身份登录,我会得到一个cookie,所有东西都可以在浏览器上正常工作

我想在iOS应用程序上执行此操作。所以在这里,我点击索引URL并获取请求中的cookie(以及浏览器发送的其他参数),以向服务器发出进一步的请求。我从chrome中复制了这个,并将其复制为curl

GET URL HTTP/1.1
Host: HOST
Connection: keep-alive
Cache-Control: max-age=0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_2) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/33.0.1750.152 Safari/537.36
Accept-Encoding: gzip,deflate,sdch
Accept-Language: en-US,en;q=0.8
但是我可以通过使用这个cookie从服务器获取响应,但是如果我使用浏览器中的cookie,我就会得到响应。你能告诉我我错过了什么吗

这些是我正在添加到请求中以模拟浏览器请求的参数

[request setValue:@"gzip,deflate,sdch" forHTTPHeaderField:@"Accept-Encoding"];
[request setValue:@"max-age=0" forHTTPHeaderField:@"Cache-Control"];
[request setValue:@"keep-alive" forHTTPHeaderField:@"Connection"];
[request setValue:@"en-US,en;q=0.8" forHTTPHeaderField:@"Accept-Language"];
[request setValue:@"text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8" forHTTPHeaderField:@"Accept"];
[request setValue:@"Mozilla/5.0 (iPhone; CPU iPhone OS 7_0_3 like Mac OS X) AppleWebKit/537.51.1 (KHTML, like Gecko) Mobile/11B508" forHTTPHeaderField:@"User-Agent"];

Java代码在哪里?如果您手动构建HTTP请求,然后编写它,那么您可能做错了。使用HTTP客户端库。@developerwjk我没有访问java代码的权限。浏览器上的请求工作正常。但我在curl上发送相同的参数,否则iOS会失败。是否有任何其他参数不会显示在chrome控制台上??