org.glassfish.jersey.message.internal.HeaderValueException:无法解析"Content-Type"标头值:"multipart/byterang



我正在尝试使用以下InvocationBuilder.header从 AWS cloudfront 获取多部分范围字节:

invocationBuilder.header("Range", "bytes=100-200,300-400,500-600r");

但我得到了这个:

Exception in thread "Name of the thread" org.glassfish.jersey.message.internal.HeaderValueException: Unable to parse "Content-Type" header value: "multipart/byteranges; boundary=CloudFront:*number of file*"
Internal.InboundMessageContext.exception(InboundMessageContext.java:335)
    at org.glassfish.jersey.message.internal.InboundMessageContext.singleHeader(InboundMessageContext.java:330)
    at org.glassfish.jersey.message.internal.InboundMessageContext.getMediaType(InboundMessageContext.java:444)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:847)
    at org.glassfish.jersey.message.internal.InboundMessageContext.readEntity(InboundMessageContext.java:785)
    at org.glassfish.jersey.client.ClientResponse.readEntity(ClientResponse.java:326)

我尝试使用cmd中的curl,效果很好。有人帮忙吗?谢谢。

CloudFront 在响应多部分范围请求时返回无效的内容类型标头。

具体来说,边界参数值包含一个必须用引号括起来的":"。

我刚刚向 AWS 提交了一个错误,但我们会看到会发生什么。你最初的问题是 5 岁,这并没有让我充满信心😬.

多部分请求示例:

$ curl -vv https://foo.cloudfront.net/bar.bin -H "Range: bytes=1-100,150-200"
<snip>
* Connection state changed (MAX_CONCURRENT_STREAMS == 128)!
< HTTP/2 206 
< content-type: multipart/byteranges; boundary=CloudFront:32FA314F82E87793C3B34E2D1FCCE8ED
<snip>

由于它们的边界参数中包含冒号,因此必须像这样引用该参数:

< content-type: multipart/byteranges; boundary="CloudFront:32FA314F82E87793C3B34E2D1FCCE8ED"

这是根据RFC1521

对实现者的警告:Content-
上的参数语法类型字段使得通常需要将
括起来内容类型行上引号中的边界。 这并不总是
必要,但从不伤害。 实施者应确保研究仔细语法以避免产生非法的内容类型
领域。因此,典型的多部分内容类型标头字段可能
看起来像这样:

             Content-Type: multipart/mixed;
                  boundary=gc0p4Jq0M2Yt08jU534c0p

但以下情况是非法的:

             Content-Type: multipart/mixed;
                  boundary=gc0p4Jq0M:2Yt08jU534c0p

(因为冒号(并且必须表示为

             Content-Type: multipart/mixed;
                  boundary="gc0p4Jq0M:2Yt08jU534c0p"

最新更新