从CFHTTPMessageRef获取原始HTTP请求

Ale*_*lds 4 iphone networking core-foundation

我正在使用包装器类CFHTTPMessage,其中包含一个CFHTTPMessageRef添加了方法(GET)的对象,Web应用程序服务器的URL以及一些包含日期和身份验证随机数的自定义标头.

我在获取方法和URL以返回某些数据时遇到了一些问题.我想我已经制定了身份验证随机数.

我想通过查看发送到Web应用程序的原始请求并确保所有内容都正确格式化来解决此问题.

我的问题是:如果我有一个CFHTTPMessageRef对象(例如messageRef),是否有办法记录此消息中出现的原始HTTP请求?

我试过以下但是EXC_BAD_ACCESS当我尝试访问它的字节时我得到一个信号:

CFDataRef messageData = CFHTTPMessageCopyBody(messageRef);
Run Code Online (Sandbox Code Playgroud)

谢谢你的建议.

作为替代方案,是否可以在交换网络上使用数据包嗅探器?我可以ettercap在笔记本电脑设备上运行,但不知道如何嗅探我的iPhone在本地无线网络上所做的事情.

Ale*_*lds 9

以下效果很好:

NSData *d = (NSData *)CFHTTPMessageCopySerializedMessage(messageRef);
NSLog(@"%@",[[[NSString alloc] initWithBytes:[d bytes] length:[d length] encoding:NSUTF8StringEncoding] autorelease]);
Run Code Online (Sandbox Code Playgroud)

希望这对其他人有帮助.