Cocoa NSUrlRequest:应用程序可以在哪里找到HTTP请求的默认头?

Cocoa NSUrlRequest:应用程序可以在哪里找到HTTP请求的默认头?,cocoa,ios,macos,core-foundation,Cocoa,Ios,Macos,Core Foundation,有人知道iOS应用程序在哪里可以看到为HTTP请求设置的默认头吗 仅创建NSUrlRequestwith“http://..“NSURL然后询问:[请求所有HttpHeaderFields]返回一个空字典。但是,例如“接受编码”被设置为“gzip”。所以我想得到所有这些字段,并在HTTP请求演示中显示它们 我还尝试了[NSMutableURLRequest setValue:forHTTPHeaderField://code>,但底层API(NSURLRequest或NSURLConnectio

有人知道iOS应用程序在哪里可以看到为HTTP请求设置的默认头吗

仅创建
NSUrlRequest
with“http://..“
NSURL
然后询问:
[请求所有HttpHeaderFields]
返回一个空字典。但是,例如“接受编码”被设置为“gzip”。所以我想得到所有这些字段,并在HTTP请求演示中显示它们

我还尝试了
[NSMutableURLRequest setValue:forHTTPHeaderField://code>,但底层API(NSURLRequest或NSURLConnection)似乎没有使用它来设置我要查找的默认字段


我正在制作一个简单的iOS演示,其中显示HTTP请求和响应信息,因此它是用于此目的的公共API还是私有API并不重要。

嗯。。。也许你想在里面试试

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

方法在自定义nsurlconnection类中。尽管文档中提到了一些关于重定向的内容,但这确实值得研究。

您的应用程序不能。这一切都是在一个星期内完成的。我相信它只是添加了未提供的缺少的头值

默认设置为:

  • 用户代理“AppName-Eng/1.0 CFNetwork/485.13.9达尔文/10.7.0”
  • 接受“*/*”
  • 接受英语“美国英语”
  • 接受编码“gzip,deflate”
  • 连接保持活动状态

这可能有些过分,但基于此,我创建了更简单的本地HTTP侦听器,并向其发送了一个单独的[mutableCopy]ed请求,以便能够读取和输出此请求所包含的所有HTTP头


更好的解决方案必须是设置一个本地HTTP请求捕获器,我认为它看起来一定更好,但对于只显示所有发送/接收头的简单演示来说,这个解决方案还可以。

不错,但不幸的是没有100%命中。的确
-(NSURLRequest*))connection:willSendRequest:redirectResponse:
将在不需要重定向(尽管有官方文档)的情况下为简单请求调用,其标题在此阶段将有一些字段:
{Accept=“*/*”Accept Encoding“=“gzip,deflate”;Accept Language“=“en-us”;}
但还有:“主机”、“用户代理”和“连接”设置在较低的级别-我运行了一个简单的本地HTTP服务器来查看所有这些内容;