2012-02-08 37 views
1

我正在使用MonoTouch從iOS應用程序調用遠程Web服務。我使用HttpWebRequest,對於GET,PUT和POST請求,它非常適合我。但是,當我嘗試創建DELETE請求時,出現了一些奇怪的現象:我發送的實體正在被截斷,服務器收到一個空的正文(Content-Length:0)。是MonoTouch還是iOS web堆棧吃掉我的HTTP DELETE請求體?

完全相同的代碼在Windows Phone上運行時使用System.Net.HttpWebRequest的WP7.1實現完美工作。

我知道RFC 2616是否允許DELETE請求中的實體正文(例如Phil Haack的question)存在一些爭議。這個問題不是關於這個問題的 - 它是關於爲什麼身體沒有到達服務器。

現在問題:-)在MonoTouch的HttpWebRequest的實現中(即Mono對DELETE請求的主體強制實現Content-Length 0)是否存在此問題?還是Mono在負責這種行爲的Apple框架之上實現了HWR?當然,這個問題的原因是爲了更好地理解我能否解決這個問題和/或懇請Miguel允許DELETE主體,或者我是否需要更改線路格式。

+1

檢查單聲道的源代碼,你會得到你的答案... – Yahia 2012-02-08 07:07:03

+0

你可能會嘗試在Mac上使用單聲道完整運行時,看看是否也遇到同樣的問題。聽起來像一個錯誤,你可能會向Xamarin報告,http://support.xamarin.com/ – 2012-02-08 08:52:31

回答

4

這看起來像是單聲道的一個bug,經過(非常)快速查看源代碼後發現this,這似乎是罪魁禍首。

你應該帶着一個測試用例file a bug,這樣它可以被修復(甚至更好:提供一個補丁,在這種情況下,它不應該花很長時間才能修復)。

+0

謝謝Rolf!會做。 – 2012-02-08 19:12:57

+0

FWIW,錯誤提交爲https://bugzilla.xamarin.com/show_bug.cgi?id=3276,現在已修復。 – Gonzalo 2012-02-27 15:56:28

相關問題