2012-02-08 1 views
1

Я использую MonoTouch для вызова удаленного веб-сервиса из приложения iOS. Я использую HttpWebRequest, и он отлично работает для меня для запросов GET, PUT и POST. Однако, когда я пытаюсь сделать запрос DELETE, я получаю некоторое нечетное поведение: тело объекта, которое я отправляю, усекается, и сервер получает пустое тело (Content-Length: 0).Является ли MonoTouch или веб-стек iOS для моего тела запроса HTTP DELETE?

Идентичный код отлично работает при работе на Windows Phone с реализацией WP.1.1 System.Net.HttpWebRequest.

Я знаю, что есть некоторые споры о том, разрешает ли RFC 2616 тело субъекта в запросе DELETE (например, Фил Хаак question). Этот вопрос не об этом - речь идет о том, почему организм не попадает на сервер.

Теперь на вопрос :-) Является ли эта проблема в реализации HttpWebRequest в MonoTouch (т. Е. Mono накладывает Content-Length на 0 для тела запроса DELETE)? Или Mono реализует HWR поверх платформы Apple, которая отвечает за это поведение? Разумеется, причина этого вопроса заключается в том, чтобы лучше понять, могу ли я решить эту проблему и/или умолять Мигеля разрешить тела DELETE, или мне нужно изменить формат проводки.

+1

проверить исходный код Mono, и у вас будет ваш ответ ... – Yahia

+0

Вы можете попробовать использовать Mono full runtime на Mac, чтобы убедиться, что эта проблема также возникает. Звучит как ошибка, и вы можете отчитаться о Xamarin, http://support.xamarin.com/ –

ответ

4

Это похоже на ошибку в Mono, после (очень) быстрого просмотра исходного кода я нашел this, что, кажется, является преступником.

Вы должны file a bug с тестовым чехлом, чтобы его можно было зафиксировать (еще лучше: предоставить патч, а в этом случае он не займет много времени, чтобы зафиксировать его).

+0

Спасибо, Рольф! Сделаю. –

+0

FWIW, ошибка была зарегистрирована как https://bugzilla.xamarin.com/show_bug.cgi?id=3276 и теперь исправлена. – Gonzalo

Смежные вопросы