我正在尝试调用网络服务,该服务会返回该应用程序的html页面, 如何在Java客户端中处理此问题,以便应将html返回到我的应用程序UI。 我尝试使用临时重定向。 下面是我的代码:
final MultiPart multiPart = new FormDataMultiPart()
.field("msg", espXML, MediaType.APPLICATION_XML_TYPE)
.field("obj", "", MediaType.TEXT_PLAIN_TYPE);
multiPart.setMediaType(MediaType.MULTIPART_FORM_DATA_TYPE);
return Response.temporaryRedirect(new URI("https://10.10.10.62:8080/abcde/1.2/wstest/"))
// .status(302)
.entity(multiPart).type(MediaType.APPLICATION_FORM_URLENCODED_TYPE)
.header("Access-Control-Allow-Origin", "*")
.header("Access-Control-Allow-Methods", "POST, GET, PUT, UPDATE, OPTIONS")
.header("Access-Control-Allow-Headers", "Content-Type, Accept, X-Requested-With")
.header("Access-Control-Allow-Credentials", "true")
.build();
严重:映射的响应异常:500(内部服务器错误) javax.ws.rs.WebApplicationException:com.sun.jersey.api.MessageException:Java类com.sun.jersey.multipart.FormDataMultiPart和Java类型类com.sun.jersey.multipart.FormDataMultiPart的消息正文编写器,以及找不到MIME媒体类型application / x-www-form-urlencoded
答案 0 :(得分:1)
您必须像这样对MediaType
的{{1}}进行注释:
Response
或
@POST
@Produces({MediaType.TEXT_HTML})
public InputStream yourFormMethod(...) {
// your processing with your MultiPart
File f = getHtmlFile();
return new FileInputStream(f);
}
并确保使用@POST
@Produces({MediaType.TEXT_HTML})
public String yourFormMethod(...) {
// your processing with your MultiPart
String yourHtml = "<head>...</head>";
return yourHtml;
}
JAX-RS
而不是@Produces
。