Java中如何发送非标准自定义格式请求并设置自定义Content-Type
当然可以在Java中发送非标准格式请求并设置自定义Content-Type
完全没问题,你既可以发送自定义格式的请求体,也能自由设置Content-Type请求头,具体实现方式如下:
1. 生成自定义格式的请求体
你提到用继承AbstractStringLayout的类定义了自定义JSON格式,只需要先通过这个类将原始数据转换成自定义格式的字符串,再传入请求体发布器即可。
2. 设置自定义Content-Type请求头
直接在HttpRequest.Builder中使用setHeader方法,把原本的application/json替换成你需要的自定义媒体类型即可,比如application/vnd.your-custom-json这类符合规范的私有类型,或者完全自定义的标识。
示例代码
// 假设CustomJsonLayout是你继承AbstractStringLayout的自定义格式处理类 CustomJsonLayout customLayout = new CustomJsonLayout(); String customFormattedContent = customLayout.toCustomFormat(log); HttpRequest request = HttpRequest.newBuilder() .uri(URI.create("your-target-url")) .POST(HttpRequest.BodyPublishers.ofString(customFormattedContent)) // 设置自定义Content-Type .setHeader("Content-Type", "application/vnd.your-custom-format+json") .build();
注意事项
- 自定义
Content-Type建议遵循RFC规范,用vnd.前缀标识私有媒体类型,避免和标准类型冲突 - 要确保对接的服务端能够识别并正确解析你设置的自定义Content-Type及对应的请求体格式
内容的提问来源于stack exchange,提问作者Melanie
相关产品推荐
相关产品推荐

