从本机 Java Rest 客户端发送 Http Post [重复]
Posted
技术标签:
【中文标题】从本机 Java Rest 客户端发送 Http Post [重复]【英文标题】:Send Http Post from a native Java Rest client [duplicate] 【发布时间】: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
【问题讨论】:
【参考方案1】:如果您要编写自己的实现,您应该首先阅读有关 multipart/*
工作原理的规范,例如RFC1341(MIME) : 7 The Multipart content type,或html 4.01 Specification - multipart/form-data。
您的问题是boundary
的值为MYBOUNDARY
,实际边界为--MYBOUNDARY
,终止符为--MYBOUNDARY--
。
【讨论】:
感谢安德烈亚斯的建议。您是否也可以帮助我知道我们是否有任何 Apache(或任何其他开源)可用的实现来解决上述问题。以上是关于从本机 Java Rest 客户端发送 Http Post [重复]的主要内容,如果未能解决你的问题,请参考以下文章
将文本文件从.Net http客户端上传到InputStream格式的Java REST API
以 InputStream 格式将文本文件从 .Net http 客户端上传到 Java REST API
如何使用来自 postmnan 本机应用程序的 gmail rest api 发送邮件
将文件从 REST Web 服务发送到客户端的正确方法是啥?