Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/118.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/iphone/41.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSMutableURLRequest,无法访问从我的iPhone程序中发送的所有请求标头_Ios_Iphone_Http Headers_Nsurlrequest_Nsmutableurlrequest - Fatal编程技术网

Ios NSMutableURLRequest,无法访问从我的iPhone程序中发送的所有请求标头

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

我正在创建一个iPhone http客户端,它将发送两个带有POST(或GET)的标题。

我的服务器收到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] => */*