如何在 REST API 中传递多个参数
Posted
技术标签:
【中文标题】如何在 REST API 中传递多个参数【英文标题】:How to pass multiple parameters in rest API's 【发布时间】:2018-11-07 16:41:07 【问题描述】:http://www.mkyong.com/webservices/jax-rs/restful-java-client-with-jersey-client/
我使用此链接从我的应用程序中进行了休息呼叫。在这里,我可以将一个对象作为输入参数传递。
Client client = Client.create();
WebResource webResource = client .resource("http://localhost:8080/RESTfulExample/rest/json/metallica/post");
String input = "\"singer\":\"Metallica\",\"title\":\"Fade To Black\"";
ClientResponse response = webResource.type("application/json") .post(ClientResponse.class, **input**);
我需要传递多个输入参数(如图像、字符串等)来代替输入,而不是作为一个对象。我该如何解决这个问题?
【问题讨论】:
看这里***.com/questions/38032635/… 【参考方案1】:如果您想拥有其他类型的多个部分,您应该使用 Multipart,您可以找到更多关于 here 的信息。例如,您可以有一个图像部分和两个字符串部分。
您也可以将图像作为 Base64 字符串发送到您的对象中,但这会增加它的大小。更好的方法是在对象内部传递 byte[]。
一种可能性是将所有这些数据作为多个查询参数发送,但这会非常糟糕,而且 url 的大小也是有限的。
【讨论】:
【参考方案2】:学习更多关于HTTP的各种方法和HTTP的请求响应模型。***是一个很好的起点:https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol
通常数据通过以下方式从客户端传递到服务器:
-
通过 GET/DELETE 查询和路径参数
文本、多部分、消息、图像、音频、视频、应用程序等,在
Content-Type
HTTP 标头的帮助下通过 POST/PUT。在What are all the possible values for HTTP "Content-Type" header? 阅读有关各种内容类型的更多信息
如果您需要同时发送各种内容类型,例如图像和文本,只需将图像转换为字节数组形式的字符串并与文本一起发送。
【讨论】:
以上是关于如何在 REST API 中传递多个参数的主要内容,如果未能解决你的问题,请参考以下文章
如何使用JSON正文在REST API POST方法中传递多个记录