2012-02-23 61 views
0

我正在設置一個請求到我的服務器,我已經幫了一些建議,但我想要一些代碼的一些澄清。nsurlrequest設置爲POST

在第二行代碼

,有什麼的setValue:forHTTPHeaderField:用於值?我想爲HTTPHeaderField:設置MIME類型......但我不知道什麼setValue是爲什麼或它如何影響我的請求。

[request setHTTPMethod: @"POST"]; 
[request setValue:@"application/x-www-form-urlencoded" forHTTPHeaderField:@"content-type"]; 
[request setHTTPBody:postBodyData]; 

任何幫助將不勝感激。

回答

1

參見NSMutableURLRequest reference14.17的Content-Type部分,用於首標信息的方法的描述和HTTP documentation。在section 7.2.1

的Content-Type

多個C-T細節指定的基礎數據的媒體類型。內容編碼可用於指示應用於數據的任何附加內容編碼,通常用於數據壓縮的目的,這是所請求資源的屬性。沒有默認編碼。

任何包含entity-body的HTTP/1.1消息都應該包含一個Content-Type頭域來定義該body的媒體類型。如果 並且僅當媒體類型不是由Content-Type字段給出時,則收件人可以嘗試通過檢查其內容和/或用於識別的URI的名稱擴展名來猜測媒體類型 資源。如果媒體類型不明,接收者應該將其視爲類型「application/octet-stream」。

+0

非常感謝鏈接..我檢查了蘋果文檔,他們給最無助的(對我來說)描述**參數 值 標題字段的新值。該字段的任何現有值均由新值替換。 字段 要設置的標題字段的名稱。爲了與HTTP RFC保持一致,HTTP標頭字段名稱不區分大小寫。 ** – 2012-02-23 21:45:27

+0

@ C.Johns查看增加的信息,它應該使Content-Type頭部使用更清晰。至於setValue:forHTTPHeaderField:函數,第二個參數負責ANY頭名稱(寫入時不區分大小寫),第一個參數是該頭文件的值。是的,標題應該有值,標題名稱是鍵(就像字典)。 – 2012-02-23 22:08:33

0

每個HTML請求都包含請求標頭和正文。

在你的例子中,你定義了這個請求的主體包含表單數據。

例如,如果您想提交一個json結構作爲您的請求體,請求的內容類型將被設置爲「application/json」。

+0

是的,我明白,所以在這種情況下** forHTTPHeaderField **會有我的jason MIME類型..不知道它是什麼。但是,我的setValue會是什麼?說我是否用自己的格式發送直接數據... – 2012-02-23 21:47:44

+0

「application/json」mimetype示例的值可能是:{「name」:「some name」} – 2012-02-23 22:00:52

相關問題