【问题标题】:Get the actual HTTP request message that NSURLConnection generates?获取 NSURLConnection 生成的实际 HTTP 请求消息?
【发布时间】:2012-12-21 15:47:41
【问题描述】:

有没有办法获取 NSURLConnection 生成的实际 HTTP 请求消息?我已经使用“tcpdump”(Unix util)来解决这个问题,但想知道是否有办法以编程方式获取它?

例如,如果我在 NSURLConnection 中使用 URL 字符串 http://www.example.com/somepath/resource?v=99,显然会产生这个:

GET /somepath/resource?v?99 HTTP/1.1
Host: www.example.com
User-Agent: {myprog}/1 CFNetwork/596.2.3 Darwin/12.2.0 (x86_64) (iMac11%2C1)
Accept: */*
Date: Wed, 19 Dec 2012 03:12:12 GMT+01:00
Accept-Language: sv-se
Accept-Encoding: gzip, deflate
Cookie: {long-string}
Connection: keep-alive

其中一些 HTTP 标头可以使用 NSURLRequest 上的setValue:forHTTPHeaderField: 设置为其他值(例如“Host”和“User-Agent”),但有些则不能(例如“Connection”)。

【问题讨论】:

    标签: objective-c macos cocoa


    【解决方案1】:

    [request allHTTPHeaderFields] 发送一个字典,其中包含您设置的键和值 ....

    如果要查看整个请求,可以使用以下工具...

    http://blog.jerodsanto.net/2009/06/sniff-your-iphones-network-traffic/

    我显示请求和响应...

    【讨论】:

    • 谢谢,但由于这不是 iPhone 应用程序,因此该链接无济于事。我可以使用“tcpdump”(Unix util)嗅探网络流量,但想知道是否有某种方法可以以编程方式获取发送的实际请求消息。我觉得 NSURLConnection 有点晦涩,但我不是一个高级的 Cocoa 程序员,所以也许只是习惯了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-01-22
    • 2015-01-03
    • 1970-01-01
    • 1970-01-01
    • 2012-05-23
    • 2015-09-09
    相关资源
    最近更新 更多