如何使用restlet在GET调用中发送参数?

时间:2015-04-29 08:40:52

标签: java curl httpurlconnection restlet

在Curl中确认以下内容:

这很好用 -

curl -X GET 'http://remoteUrl.com:8080/public/private/request/data?begin=12&end=20'

这不起作用 -

curl -X GET http://remoteUrl.com:8080/public/private/request/data?begin=12&end=20

所以整个目的是在带有restlet的java代码中使用第一个curl命令的方式在GET请求中发送参数,但不幸的是我的代码无效。

代码:

    ClientResource clientResource = new     
    ClientResource("http://remoteUrl.com:8080/public/private/request/
    data?begin=12&end=20");
    Representation clientText = clientResource.get();

错误日志:

INFO: Unable to read a header
java.io.IOException: Parameter or extension has no name. Please check your value
    at org.restlet.engine.header.HeaderReader.readNamedValue(HeaderReader.java:499)
    at org.restlet.engine.header.CacheDirectiveReader.readValue(CacheDirectiveReader.java:65)
    at org.restlet.engine.header.CacheDirectiveReader.readValue(CacheDirectiveReader.java:38)
    at org.restlet.engine.header.HeaderReader.addValues(HeaderReader.java:282)
    at org.restlet.engine.header.CacheDirectiveReader.addValues(CacheDirectiveReader.java:50)
    at org.restlet.engine.header.HeaderUtils.copyResponseTransportHeaders(HeaderUtils.java:776)
    at org.restlet.engine.adapter.ClientAdapter.readResponseHeaders(ClientAdapter.java:129)
    at org.restlet.engine.adapter.ClientAdapter.updateResponse(ClientAdapter.java:191)
    at org.restlet.engine.adapter.ClientAdapter.commit(ClientAdapter.java:105)
    at org.restlet.engine.adapter.HttpClientHelper.handle(HttpClientHelper.java:119)
    at org.restlet.Client.handle(Client.java:153)

1 个答案:

答案 0 :(得分:0)

根据您在问题中提供的例外情况,标题Cache-Control的值似乎在响应中不正确。 Restlet无法解析它。

我猜这个标题的值在响应中是一个空字符串......

您能否在问题中向我们提供回复的确切内容(主要是标题)?

希望它可以帮到你, 亨利