Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java REST分块编码_Java_Rest_Encoding_Chunked - Fatal编程技术网

Java REST分块编码

Java REST分块编码,java,rest,encoding,chunked,Java,Rest,Encoding,Chunked,我正在尝试使用使用区块编码的REST服务读取一些信息 String encodedURL = URLEncoder.encode(url, "UTF-8"); WebClient client = org.apache.cxf.jaxrs.client.WebClient.create(encodedURL).accept("text/html"); Response response = client.get(); 响应包含状态、元数据和实体。元数据包含以下信息: {日期=[Thu,2011

我正在尝试使用使用区块编码的REST服务读取一些信息

String encodedURL = URLEncoder.encode(url, "UTF-8");
WebClient client = org.apache.cxf.jaxrs.client.WebClient.create(encodedURL).accept("text/html");
Response response = client.get();
响应包含状态、元数据和实体。元数据包含以下信息:

{日期=[Thu,2011年10月13日13:27:02 GMT],变化=[Accept Encoding, 用户代理],传输编码=[chunked],保持活动=[timeout=15, max=100],内容类型=[text/html;charset=charset=UTF-8], 连接=[保持活动]、X-Pad=[避免浏览器错误], 服务器=[Apache/2.2.3(Linux/SUSE)]}

该实体包含类型为sun.net.www.protocol.http.HttpURLConnection$HttpInputStream的实例

我过去一直在使用以下代码行来获取整个结果字符串:

String resultString = client.get(String.class);
但不知怎的,这一行引发了一个异常:

.读取响应消息时出现问题,类:类 java.lang.String,ContentType:text/html;字符集=字符集=UTF-8。 org.apache.cxf.jaxrs.client.ClientWebApplicationException:。问题 通过读取响应消息class:class java.lang.String, ContentType:text/html;字符集=字符集=UTF-8

。。。原因:

原因:java.io.UnsupportedEncodingException:charset=UTF-8 at 位于的sun.nio.cs.StreamDecoder.forInputStreamReader(未知源) java.io.InputStreamReader。(未知源)位于 org.apache.cxf.helpers.IOUtils.toString(IOUtils.java:180)位于 org.apache.cxf.helpers.IOUtils.toString(IOUtils.java:166)位于 org.apache.cxf.jaxrs.provider.PrimitiveTextProvider.readFrom(PrimitiveTextProvider.java:51) 在 org.apache.cxf.jaxrs.client.AbstractClient.readBody(AbstractClient.java:435) ... 49多

是否有一个简单的解决方案来获取响应的全部内容

谢谢大家!


kon

我担心服务器端发送垃圾并导致异常在客户端抛出

问题在于内容类型HTTP头信息。设置为:

text/html; charset=charset=UTF-8
正如您所看到的,charset这个词是重复的。因此,您的客户机尝试使用名为
charset=UTF-8
的编码对其进行解码,这当然是不存在的


最好的解决方案是在服务器端解决问题。但我不知道你能不能在那里修好。如果没有,下一个最好的方法是在尝试获取响应内容之前尝试修复HTTP头。

恐怕服务器端会发送垃圾并导致在客户端引发异常

问题在于内容类型HTTP头信息。设置为:

text/html; charset=charset=UTF-8
正如您所看到的,charset这个词是重复的。因此,您的客户机尝试使用名为
charset=UTF-8
的编码对其进行解码,这当然是不存在的

最好的解决方案是在服务器端解决问题。但我不知道你能不能在那里修好。如果没有,下一个最好的方法是在尝试获取响应内容之前尝试修复HTTP头。

您可以使用

@Produces("application/json; charset=UTF-8")
jax-rs服务的注释可以使用

@Produces("application/json; charset=UTF-8")

jax-rs服务的注释

谢谢Codo!不知怎么的,我完全错过了。谢谢你,科多!不知怎么的,我完全错过了这个。