【问题标题】:Send Http Post from a native Java Rest client [duplicate]从本机 Java Rest 客户端发送 Http Post [重复]
【发布时间】:2017-06-13 21:12:28
【问题描述】:

我正在开发一个本机 Java REST 客户端,以使用以下 Post 信息及其有效负载向服务器提交 POST 请求。我正在使用 Apache 的 HttpClient 和 HttpPost。

我面临的挑战是如何定义和设置边界并在帖子正文中传递 JSON 对象。当我使用 REST 客户端工具(如 Postman 或 Advanced REST 客户端)测试以下发布请求时,它可以工作。但是我需要在我的本机 Java 代码中实现它。如何传递以下数据,特别是从 MYBOUNDARY 到 --MYBOUNDARY 的信息。我是否需要传递换行符/空白行并进行某种编码?

以下是我需要发送的 POST 请求及其负载。

POST /savedata/saveimage/imageid HTTP/1.1
Host: mywebsite.com
Authorization: Bearer T1touCsbcNNrQpMdJjqspLCwhbiQ
Accept: application/json, text/plain, */*
Content-Type: multipart/form-data; boundary=MYBOUNDARY
Cache-Control: no-cache

MYBOUNDARY
Content-Disposition: form-data; name="entity_priority"

{"Name":"Jack","Date":"2017-01-25T11:06:33.834Z","notes":{"records":[{"Text":"123456789","Type":"None","Attachments":{"records":[]}}]},"CreatedBy":{"user":"2020"}}
--MYBOUNDARY

【问题讨论】:

    标签: java rest native multipartform-data boundary


    【解决方案1】:

    如果您要编写自己的实现,您应该首先阅读有关 multipart/* 工作原理的规范,例如RFC1341(MIME) : 7 The Multipart content type,或HTML 4.01 Specification - multipart/form-data

    您的问题是boundary 的值为MYBOUNDARY,实际边界为--MYBOUNDARY,终止符为--MYBOUNDARY--

    【讨论】:

    • 感谢安德烈亚斯的建议。您是否也可以帮助我知道我们是否有任何 Apache(或任何其他开源)可用的实现来解决上述问题。
    猜你喜欢
    • 2015-04-04
    • 1970-01-01
    • 2018-10-31
    • 2016-10-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-12-26
    • 1970-01-01
    相关资源
    最近更新 更多