2012-02-08 12 views
1

MonoTouchを使用して、iOSアプリケーションからリモートWebサービスを呼び出しています。私はHttpWebRequestを使用して、GET、PUT、POSTの要求に対しては素晴らしい動作をします。しかし、私がDELETE要求をしようとすると、私はいくつかの奇妙な振る舞いをします:私が送るエンティティボディは切り捨てられ、サーバは空のボディ(Content-Length:0)を受け取ります。MonoTouchまたはiOSウェブスタックがHTTP DELETEリクエストボディを食べていますか?

System.Net.HttpWebRequestのWP7.1実装でWindows Phoneで実行すると、完全に同じコードが動作します。

私は、RFC 2616がDELETE要求でエンティティ本体を許可するかどうかについていくつかの議論があることを知っています(Phil Haackのquestionなど)。この質問はそれに関するものではありません。それはなぜ身体がサーバーにそれを行かないのかということです。

質問:MonteTouchのHttpWebRequestの実装でこの問題が起こっていますか(つまり、MonoはDELETE要求の本体に対してContent-Lengthを0に設定していますか)?あるいは、Monoはこの動作を担当するAppleフレームワークの上にHWRを実装していますか?その理由は、もちろん、私がこの問題を回避することができるかどうか、あるいはDELETE本体を許可するようにMiguelに懇願しているかどうか、または私のワイヤフォーマットを変更する必要があるかどうかをよく理解することです。

+1

Monoのソースコードをチェックして、あなたの答えが... – Yahia

+0

MacでMono full runtimeを使用して、同じ問題が発生するかどうかを調べることがあります。バグのように聞こえ、Xamarinに報告するかもしれません。http://support.xamarin.com/ –

答えて

4

Monoのバグのように見えますが、ソースコード内で(非常に)素早く見てthisが見つかりましたが、その原因が原因です。

file a bugあなたはテストケースを持っていなければなりませんので、修正することができます(さらに良いことに、パッチを提供することもできます。

+0

Rolf!ありがとうございます。しましょう。 –

+0

FWIW、バグはhttps://bugzilla.xamarin.com/show_bug.cgi?id=3276として提出され、修正されました。 – Gonzalo

関連する問題