簡體   English   中英

NSMutableURLRequest,無法訪問我的iPhone程序中發出的所有請求標頭

[英]NSMutableURLRequest, cant access all request headers sent out from within my iPhone program

我正在創建一個iPhone http客戶端,該客戶端以其POST(或GET)發送2個標頭。

我的服務器收到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)我運行

$allHeaders = getallheaders();
print_r($allHeaders)

並得到:

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] => */*


當然,你可以嘗試網絡調試工具,比如: 小提琴家 ,如果你runninng在Windows上,或者查爾斯 ,如果你有一個蘋果。 使用任何一個,您都可以檢查所有發送請求的詳細信息,因為他是通過http發送的每個連接的代理。

編輯 :另外,請注意,您未設置的其余標頭由HTTP協議自動給出,因為它們在事務中是必需的。

看起來我想要的東西無法完成
在這里討論

您可以設置本地服務器向其發送請求,然后將其發送回完整的請求,
但這有點像魯布·戈德堡式的。
要么
您可以使用較低級別的庫,而無需魔術精靈為您做任何事情。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM