如何发现 HTTP POST 服务允许哪些内容类型?

发布于 2024-12-01 15:48:30 字数 534 浏览 2 评论 0原文

我正在为OpenTox webservices编写一个客户端,但是他们提供的一些服务有可选的支持某些 MIME 类型,只有少数强制性,例如这个 数据集服务。因此,我需要发现特定运行的服务动态支持哪些内容类型...

现在,对于 GET 服务,我可以使用“Accepts”HTTP 标头,当我发布内容时,我可以使用“Content-type”来设置我发送的格式是什么。但我不想默认进行反复试验,因为这些数据集可能很大。因此,我想预先知道我可以使用的最佳 MIME 类型。

如何使用 POST 服务执行内容协商?我正在使用 Apache HttpClient,但这对于答案并不重要。

I am writing a client for OpenTox webservices, but several services they provide have optional support for certain MIME types with only a few obligatory, e.g. this Dataset service. So I need to discover which of those content types are supported by a particular running service dynamically...

Now, for GET services I can use the "Accepts" HTTP header and when I POST content I can use "Content-type" to set what format I am sending in. But I rather not default into trial-and-error, as these data sets can be large. Therefore, I like to know up front the best MIME type I can use.

How do I perform content negotiation with POST services? I am using the Apache HttpClient, but that is not important for the answer.

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

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

发布评论

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

评论(1

﹏半生如梦愿梦如真 2024-12-08 15:48:31

HTTP 规范中未包含 POSTed 内容协商;相反,建议使用 OPTIONS 方法。这正是 OpenTox 框架中的情况:OPTIONS 必须由所有 Web 服务实现。该服务返回一个 RDF 文档(根据您指定的 Accept 头)和一个类似 WADL 的内容,即它返回机器可读的文档,指定可用的 MIME 类型、可能的 HTTP 状态代码等。不幸的是,到目前为止只有一种实现OpenTox 中的选项,即 JAQPOT3。查看此 wiki 条目

POSTed Content negotiation is not enshrined in the HTTP specification; instead what is advisable is to use the OPTIONS method. This is exactly the case in the OpenTox framework: OPTIONS has to be implemented by all web services. The service returns an RDF document (according to the Accept Header you specify) and a WADL-like content, i.e. it returns machine-readable documentation specifying the available MIME types, the possible HTTP status codes etc. Unfortunately so far there's only one implementation of OPTIONS in OpenTox, namely JAQPOT3. Check out this wiki entry.

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