首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何从带有运动衫的HTTP头中放置和获取UTF-8字符串?

如何从带有运动衫的HTTP头中放置和获取UTF-8字符串?
EN

Stack Overflow用户
提问于 2013-10-08 10:49:31
回答 1查看 2.6K关注 0票数 3

我遇到了一个问题,我被要求将一些参数放入请求的HTTP头中。web服务器(带有Jersey1.17)将解析来自标头字段的参数。然而,这些参数的值应该由UTF-8来形成.是否可以在HTTP报头中放置一个UTF-8字符串?如果有可能,我如何使用rest客户端(如火狐插件中的RESTClient)来模拟它?

我试图通过谷歌搜索这个问题,而一个问题(HTTP报头应该使用什么字符编码?)似乎是相对于我的问题。响应说,只有当字符集不是ISO8859-1时,HTTP头才使用MIME编码。如果这是正确的,我如何解析MIME编码在泽西,以获得正确的UTF-8字符串从请求头?

非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-10-09 04:24:33

多亏了尤金,我找到了解决办法。

因为RFC定义了报头可以接受MIME编码,所以答案是在通过RestClient发送HTTP之前将编码的字符串放在标头字段中。对于在泽西中接收请求的服务器,从头获取字符串并使用MIME解码器对字符串进行解码。

例如:

代码语言:javascript
代码运行次数:0
运行
复制
@GET
@Path("/get")
public Response get (@Context HttpHeaders headers) {
    // Get the value from header, where "header-name" is the key name of the header.
    String value = headers.getRequestHeader("header-name").get(0);
    // Decode the value using MIME decoder.
    try {
        value = javax.mail.internet.MimeUtility.decodeText(value);
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    System.out.println("Decoded value from header: " + value);
    return Response.ok().build();
}
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19245695

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档