感谢 Eugen,我找到了解决方案。
由于 RFC 定义了 header 可以接受 MIME 编码,因此答案是在通过 RestClient 发送 HTTP 请求之前在 header 字段上放置一个编码字符串。对于以 jersey 形式接收请求的服务器,从 header 中获取字符串并使用 MIME 解码器对字符串进行解码。
例如:
@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();
}