NSUrlRequest:应用程序可以在哪里找到HTTP请求的默认标头?
有人知道iOS应用程序可以看到NSUrlRequest
为HTTP请求设置的默认标头吗?
只需使用“http:// ..” NSURL
创建NSUrlRequest
,然后询问: [request allHTTPHeaderFields]
返回一个空字典。 但我知道例如“Accept-Encoding”设置为“gzip” 。 所以我希望得到所有这些字段并在HTTP请求演示中显示它们。
我也试图[NSMutableURLRequest setValue:forHTTPHeaderField:]
,但它似乎没有被底层API(NSURLRequest或NSURLConnection)用来设置我正在寻找的那些默认字段。
我正在制作一个简单的iOS演示,其中显示了HTTP请求和响应信息,因此如果它是用于此的公共或私有API并不重要。
你的应用不能。 它完成了CFNetwork – 与HTTP服务器通信 。 我相信它只是添加了NSURLRequest未提供的缺失标头值。
默认值为:
- USER-AGENT “AppName – Eng / 1.0 CFNetwork / 485.13.9 Darwin / 10.7.0”
- 接受 “* / *”
- ACCEPT-LANGUAGE “en-us”
- 接受编码 “gzip,deflate”
- 连接 “保持活力”
嗯…也许你可能想尝试一下
- (NSURLRequest *)connection:(NSURLConnection *)connection willSendRequest:(NSURLRequest *)request redirectResponse:(NSURLResponse *)redirectResponse
自定义nsurlconnection类中的方法。 虽然文档提到了有关重定向的内容,但这当然值得研究。
这可能是一种矫枉过正,但根据Matt Gallagher的博客文章,我创建了更简单的本地HTTP侦听器,并向其发送了一个单独的[mutableCopy] ed请求,以便能够读取和输出此请求具有的所有HTTP头。
更好的解决方案必须是设置一个本地HTTP请求捕获器,它看起来必须看起来更好,但是对于简单演示的范围只是为了显示所有发送/接收的头,这个解决方案是可以的。
- 如何在iphone sdk中设置JSON数组?
- 为什么UIViewController touchesBegan,touchesMoved&touchesEnded只有在两个触摸的第一个开始,移动或结束时被调用?
- AFImageRequestOperation返回未经竞争下载的图像
- 为什么heightForRowAtIndexPath:在cellForRowAtIndexPath之前:?
- Xcode:将结构化数据放入Localizable.strings文件中
- 在Objective-C代码中找不到windowScriptObject方法
- 有错误:FT_Open_Face失败:错误2
- 如何使SpriteKit跳转到特定的高度?
- 从应用内播放video?