Multipart表单数据的客户端以HTML作为响应来休息WS

问题描述 投票:0回答:1

我正在尝试调用一个Web服务,该服务返回该应用程序的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();

SEVERE:响应的映射异常: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

java rest web-services java-ee
1个回答
1
投票

你必须注释你的MediaTypeResponse像:

@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而不是CDI

© www.soinside.com 2019 - 2024. All rights reserved.