如何使用带有json参数的curl调用Web服务?

时间:2019-03-14 15:30:53

标签: java json web-services curl

我正在用Java编程。 我开发了一个测试Web服务,其中传递了一个随机json,并且该服务向我打招呼

以下是Web服务代码:

@Path("test")
@GET
@Consumes(MediaType.APPLICATION_JSON)
public String test(@HeaderParam("token") String token, @QueryParam("array")String array)
{
    return "hello";
}

我用curl呼叫服务

curl -v -H 'token:aaaa' 'http://140.145.1.2/clayapi/restservices/test?array=[{"name":"george","lastname":"ronney"}]';

错误消息:

curl: (3) [globbing] illegal character in range specification at pos 60

我试图添加-g,但是它不起作用..我该怎么办?

1 个答案:

答案 0 :(得分:2)

-G一起使用--data-urlencode

curl -v -G 'http://example.org' \
    -H 'header:value' \
    --data-urlencode 'array=[{"name":"george","lastname":"ronney"}]'

来自documentation

  

-G--get

     

使用此选项时,会将-d--data--data-binary--data-urlencode指定的所有数据用于HTTP GET请求中POST请求中的,否则将使用该请求。数据将使用?分隔符附加到URL。 [...]

  

--data-urlencode <data>

     

(HTTP)与其他-d--data选项类似,它发布数据,但执行URL编码。 [...]