Ios NSMutableURLRequest,无法访问从我的iPhone程序中发送的所有请求标头
我正在创建一个iPhone http客户端,它将发送两个带有POST(或GET)的标题。Ios NSMutableURLRequest,无法访问从我的iPhone程序中发送的所有请求标头,ios,iphone,http-headers,nsurlrequest,nsmutableurlrequest,Ios,Iphone,Http Headers,Nsurlrequest,Nsmutableurlrequest,我正在创建一个iPhone http客户端,它将发送两个带有POST(或GET)的标题。 我的服务器收到7个标题。 网络库添加了5个标题。 是否有办法从ios程序中访问添加的标题? 或 是否有办法抑制此功能,使其不向请求中添加标题? 我已经可以使用外部工具完成此操作。 我只需要ios程序来记录发送的所有标题。 以下是所有丑陋的细节: 从我的iPhone发送请求的代码: NSMutableURLRequest *request = [NSMutableURLRequest requestWithU
我的服务器收到7个标题。
网络库添加了5个标题。
是否有办法从ios程序中访问添加的标题?
或
是否有办法抑制此功能,使其不向请求中添加标题?
我已经可以使用外部工具完成此操作。
我只需要ios程序来记录发送的所有标题。
以下是所有丑陋的细节:
从我的iPhone发送请求的代码:
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"BlahAgent" forHTTPHeaderField:@"User-Agent"];
[request setValue:@"keep-alive" forHTTPHeaderField:@"Connection"];
NSURLConnection *connection = [[NSURLConnection alloc]initWithRequest:request delegate:self];
NSLog(@"all headers %@",request.allHTTPHeaderFields);
这将打印到xcode控制台:
all headers {
Connection = "keep-alive";
"User-Agent" = "BlahAgent";
}
在接收端(php)上运行 并获得:
Array
(
[Host] => 192.168.0.15
[Accept-Encoding] => gzip, deflate
[Accept] => */*
[Accept-Language] => en-us
[Connection] => keep-alive
[Content-Length] => 0
[User-Agent] => BlahAgent
)
我甚至做了一个钢丝鲨,得到:
POST /php/ajax.php HTTP/1.1
Host: 192.168.0.15
Accept-Encoding: gzip, deflate
Accept: */*
Accept-Language: en-us
Connection: keep-alive
Content-Length: 0
User-Agent: BlahAgent
我又做了一次,但是没有标题和GET:
[Host] => 192.168.0.15
[Connection] => keep-alive
[Accept-Encoding] => gzip, deflate
[User-Agent] => Blah%20Agent/1.0 CFNetwork/672.0.8 Darwin/14.0.0
[Accept-Language] => en-us
[Accept] => */*
当然,您可以尝试web调试工具,例如:如果您在windows上运行,或者如果您有mac电脑。对于其中任何一个,您都可以检查所发送的任何请求的全部细节,因为他是通过http发送的每个连接的代理
编辑:另外,请注意,您未设置的其余标头由HTTP协议自动提供,因为它们是事务中必需的 这看起来像是我想要的无法实现
您可以设置本地服务器向其发送请求,并让其发回完整请求,
但这有点像是鲁布·戈德堡的风格。
或
您可以使用较低级别的库,而无需魔法精灵为您做任何事情。
我已经可以从外部读取请求标题,但我需要从发出请求的应用程序中读取它们。我做了一个telnet会话,唯一需要的头是主机:无论如何,谢谢你的输入。我确信ios有办法读取添加的传出头,我只是不知道如何读取。我没有明确说明,但我需要从发送请求的程序中查看传出头。我需要对网络库添加的请求头进行程序访问。对不起,我没说清楚。
[Host] => 192.168.0.15
[Connection] => keep-alive
[Accept-Encoding] => gzip, deflate
[User-Agent] => Blah%20Agent/1.0 CFNetwork/672.0.8 Darwin/14.0.0
[Accept-Language] => en-us
[Accept] => */*