api传输另一个api响应

9vw9lbht  于 2021-07-12  发布在  Java
关注(0)|答案(1)|浏览(299)

我和我的团队正在使用gwt2.4(jdk1.6.0\u45)开发一些旧但相当大的应用程序。
我们目前正面临一个使用http协议的公共api。他们最近转向了Java6(免费版本)没有很好使用的https。
我有多种解决方案:
升级到可维护但不免费的Java6版本(我们希望避免付费)
升级到Java8(GWT2.4与Java8不兼容,因此我们还必须升级到GWT2.8,考虑到应用程序的大小,这需要一些时间)
开发一个小api,捕获这个公共api的响应,并用http协议将其发送回我的应用程序
我启动了第三个解决方案,但在对收到的响应(xml)进行解组时遇到了一些问题。
以下是我到目前为止所做的:
调用公共api的api方法:

@Override
public ResponseEntity<WorkMetadataType> lookupWithFilter(String authorization, String filter, String id, Optional<String> accept, Optional<String> xISANAuthorization, Optional<String> idtype) {
    WorkMetadataType res = isanApi.lookupWithFilter(authorization, filter, id, accept.orElse(null), xISANAuthorization.orElse(null), idtype.orElse(null));
    if (res == null) {
        throw new WorkNotFoundException();
    }
    return ResponseEntity.ok(res);
}

调用公共api的方法。

public WorkMetadataType lookupWithFilter(String authorization, String filter, String id, String accept, String xISANAuthorization, String idtype) {
    RestTemplate restTemplate = new RestTemplate();
    restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory(getHttpClient()));
    try {
        CustomMarshallingHttpMessageConverter converter;
        converter = new CustomMarshallingHttpMessageConverter(JAXBContext.newInstance(ISANDataType.class));
        converter.setDefaultCharset(StandardCharsets.UTF_8);
        restTemplate.getMessageConverters().add(converter);
    } catch (JAXBException e) {
        logger.error("Erreur lors de la définition du marshaller", e);
    }
    HttpEntity<String> entity = new HttpEntity<>(null, getHeaders(authorization, accept, xISANAuthorization));

    return restTemplate.exchange(getRequestUri(id, idtype, filter), HttpMethod.GET, entity, WorkMetadataType.class).getBody();
}

如您所见,我使用的是spring和他的restemplate类。问题是,您需要指定响应的性质,这是我希望避免的,因为我的解组问题。
我的问题是:在我的api接收到响应时,是否可以将这个公共api的响应传输到我的应用程序而不使用它(简单地说,就是复制/粘贴)

p4tfgftt

p4tfgftt1#

我最终使用了一个httpcliendbuilder来构建我的请求并得到一个inputstream作为响应。这样我就可以把它转换成字符串并用它创建一个responseentity。

相关问题