MonoTouch 或 iOS Web 堆栈是否正在占用我的 HTTP DELETE 请求正文?

发布于 2025-01-03 07:42:52 字数 640 浏览 0 评论 0原文

我正在使用 MonoTouch 从 iOS 应用程序调用远程 Web 服务。我使用 HttpWebRequest,它对于 GET、PUT 和 POST 请求非常有用。但是,当我尝试发出 DELETE 请求时,我收到一些奇怪的行为:我发送的实体主体被截断,并且服务器收到一个空主体(内容长度:0)。

当使用 System.Net.HttpWebRequest 的 WP7.1 实现在 Windows Phone 上运行时,相同的代码可以完美运行。

我知道关于 RFC 2616 是否允许 DELETE 请求中的实体主体存在一些争论(例如 Phil Haack 的 问题)。这个问题与此无关——而是关于为什么主体没有到达服务器。

现在问题是:-) 这个问题是否存在于MonoTouch 的HttpWebRequest 实现中(即Mono 对DELETE 请求的正文强制Content-Length 为0)?或者 Mono 是否在负责此行为的 Apple 框架之上实现了 HWR?当然,提出这个问题的原因是为了更好地了解我是否可以解决该问题和/或恳求米格尔允许删除主体,或者我是否需要更改我的有线格式。

I am using MonoTouch to call a remote web service from an iOS app. I use HttpWebRequest and it works great for me for GET, PUT, and POST requests. However, when I try to make a DELETE request, I get some odd behavior: the entity body that I send gets truncated and the server receives an empty body (Content-Length: 0).

The identical code works perfectly when run on a Windows Phone with the WP7.1 implementation of System.Net.HttpWebRequest.

I know that there is some debate on whether RFC 2616 allows an entity body in a DELETE request (e.g. Phil Haack's question). This question isn't about that - it is about why the body does not make it to the server.

Now to the question :-) Is this issue in MonoTouch's implementation of HttpWebRequest (i.e. Mono enforces a Content-Length of 0 for the body of a DELETE request)? Or does Mono implement HWR on top of an Apple framework that is responsible for this behavior? The reason for the question, of course, is to better understand whether I can work around the issue and/or implore Miguel to allow DELETE bodies, or whether I need to change my wire format.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

暮年慕年 2025-01-10 07:42:52

这看起来像是 Mono 中的一个错误,在(非常)快速地查看源代码后,我发现 this,这似乎是罪魁祸首。

您应该使用测试用例提交错误,以便可以修复它(更好的是:也提供补丁,在在这种情况下,修复它不需要很长时间)。

This looks like a bug in Mono, after a (very) quick look in the source code I found this, which seems to be the culprit.

You should file a bug with a test case so it can be fixed (even better: provide a patch as well, in which case it shouldn't take long to get it fixed).

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文