gpt4 book ai didi

java - Length Required (411) - RESTlet 客户端中所需的长度

转载 作者:搜寻专家 更新时间:2023-11-01 02:32:12 27 4
gpt4 key购买 nike

我是 REST 新手,正在开发客户端以将数据发布到外部托管服务。我正在使用 org.reslet.resource.ClientResource 创建客户端

    Representation rep = new JsonRepresentation(json);
rep.setMediaType(MediaType.APPLICATION_JSON);
rep.setCharacterSet(CharacterSet.UTF_8);

ClientResource clientResource = getClientResource();
Representation reply = clientResource.post(rep);
return readResponseStream(reply, clientResource);

但是我得到以下错误

Exception in thread "main" Length Required (411) - Length Required
at org.restlet.resource.ClientResource.handle(ClientResource.java:858)
at org.restlet.resource.ClientResource.post(ClientResource.java:1197)
at org.mine.client.impl.RestClient.post(RestClient.java:59)

相同的代码适用于获取请求

Representation reply = clientResource.get();

我使用的是 reslet api 2.0.8。这似乎是帖子 org.restlet: Posting JSON content against webservice returns HTTP error 411 (length required) 中的问题

我在类路径中有以下 jar

org.apache.commons.codec.jar org.apache.commons.logging.jar org.apache.httpclient.jar org.apache.httpcore.jar org.json.jar org.restlet.ext.json.jar org.restlet.jar

如有任何帮助,我们将不胜感激。

最佳答案

问题是 GAE 不支持 HTTP 分块编码,因此不能将序列化对象发送(通过 POST 或 PUT)到 GAE 服务器。在 ReSTLet Framework 版本 2.1 M4 中,我们有一个可用的变通方法来缓冲 HTTP 实体以防止 block 编码。要使用它,请使用“true”值调用 ClientResource#setRequestEntityBuffering(boolean) 方法。请注意,GWT 版本不需要此解决方法。

由于您使用的是 ReSTLet 2.0.8,我建议您使用此处发布的解决方法:http://restlet.tigris.org/issues/show_bug.cgi?id=1219

最好的问候,蒂埃里·布瓦洛

关于java - Length Required (411) - RESTlet 客户端中所需的长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6462142/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com