如何在rest API中传递多个参数

时间:2018-05-29 06:06:03

标签: java jersey-client

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**);

我需要在输入位置传递多个输入参数(如图像,字符串等),但不能作为一个对象传递。我怎么能解决这个问题?

2 个答案:

答案 0 :(得分:1)

如果您想要使用其他类型的多个部分,则应使用Multipart,您可以找到有关here的更多信息。因此,您可以拥有图像部分和两个字符串部分。

您还可以将图像作为Base64字符串发送到对象中,但这会增加它的大小。更好的方法是在对象内传递byte []。

一种可能性是将所有这些数据作为多个查询参数发送,但这个网址的大小也会受到限制。

答案 1 :(得分:0)

详细了解各种HTTP方法和HTTP的请求响应模型。维基百科是一个很好的起点:https://en.wikipedia.org/wiki/Hypertext_Transfer_Protocol

通常,数据以下列方式从客户端传递到服务器:

  1. 通过GET / DELETE
  2. 查询和路径参数
  3. 文本,多部分,消息,图像,音频,视频,应用程序等,在displayFilter HTTP标头的帮助下通过POST / PUT。在What are all the possible values for HTTP "Content-Type" header?
  4. 了解有关各种内容类型的详情

    如果您需要将各种内容类型一起发送,比如图像和文本,只需将图像转换为字符串作为字节数组,然后将其与文本一起发送。