gpt4 book ai didi

java - 在 REST 客户端和 Jersey Java 代码完成的 REST 调用的响应中获取不同的内容类型

转载 作者:太空宇宙 更新时间:2023-11-04 11:33:23 26 4
gpt4 key购买 nike

在开发微服务时,我必须使用第 3 方的 REST api。我正在将 Spring Boot 应用程序与 Jersey 库一起使用。现在的问题是我得到的响应的内容类型为“text/html; charset=utf-8”。

如果我使用 REST 客户端进行相同的调用,我会得到正确的内容类型 application/json;charset=UTF-8。为什么会这样?

下面是相同的 Java 源代码 -

@Produces(javax.ws.rs.core.MediaType.APPLICATION_JSON + "; charset=UTF-8")
@POST
@Path("/endPoint")
@Consumes(javax.ws.rs.core.MediaType.APPLICATION_JSON + "; charset=UTF-8")
public JSONObject getAccessToken(@FormParam("item1") String item1,@FormParam("item2") String item2,@FormParam("item3") String item3,@FormParam("item4") String item4) throws Exception {
System.out.println("Enter to test");


String extendedUrl = "?item1="+item1+"&item2="+item2+"&item3="+item3+"&item4="+item4;

JSONObject jObject = null;
try {
jObject = postCall(extendedUrl);
}
catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}

System.out.println("Box Auth Response :: "+jObject.toJSONString());

return jObject;
}
// Short description of the logic to execute the request
public void postCall(String extendedUrl)
{
String url = "baseurl";
url+=extendedUrl;
HttpsURLConnection conn = openConnection(apiUrl);
conn.connect();
status = conn.getResponseCode();
String responseContentType = conn.getContentType();
System.out.println("responseContentType ::"+responseContentType);
}

因此,当我调试代码时,responseContentType 显示为 text/html;字符集=utf-8。有同样的理由吗?如何将其获取为 application/json;charset=UTF-8?

如果有帮助,我们将不胜感激。

最佳答案

检查请求的“接受” header

接受:application/json内容类型:application/json

关于java - 在 REST 客户端和 Jersey Java 代码完成的 REST 调用的响应中获取不同的内容类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43545080/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com