【问题标题】:Can I do an http GET and include a body using HttpURLConnection?我可以使用 HttpURLConnection 执行 http GET 并包含正文吗?
【发布时间】:2013-09-06 18:37:01
【问题描述】:

我需要为 REST 服务执行 http GET 并在 GET 中包含一个正文。不幸的是,在连接上设置#setDoOutput( true ) 会强制使用POST。无论如何要发送带有正文的GET 吗?

编辑:我要发送的正文是 JSON。

【问题讨论】:

  • 设置一个'body',发送参数是什么意思?
  • 我注意到this is feasible,但HttpUrlConnection 似乎不可能。

标签: java android get httpurlconnection


【解决方案1】:

无法使用HttpURLConnection 为 HTTP GET 发送内容。通过在HttpURLConnection 上设置setDoOutput(true),动词被强制为POST。

我使用的 REST API 的文档描述了相关端点的 JSON 正文,但接受了 URL 参数。

【讨论】:

    【解决方案2】:

    通过 HttpUrlConnection 可能无法实现,尽管您可能可以通过其他 API 来实现,但是如果您必须这样做,那么您在架构中做错事的可能性很高,因为它违反了基本原则GET Http 方法的使用可能会出现不同的问题,例如: 如果您曾经尝试利用缓存,代理不会在 GET 正文中查看参数是否对响应有影响。 根据标准实践,这不是一个好的实现,它可能会导致某些浏览器/服务出现问题。

    查看这个问题了解更多信息。

    HTTP GET with request body

    希望这会有所帮助。

    问候!

    【讨论】:

    • 我在对我的问题的评论中将已接受的答案与该问题相关联。
    猜你喜欢
    • 1970-01-01
    • 2021-07-10
    • 1970-01-01
    • 2013-07-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-11
    • 1970-01-01
    相关资源
    最近更新 更多