我写客户端REST GET调用使用Spring RestTem板。我需要将超文本传输协议头传递给GET调用。
请查找代码段:
String url = "http://<hostname>:7001/api?id=231";
ResponseEntity<ResponseObject> getEntity = this.restTemplate.getForEntity(url, ResponseObject.class);
return getEntity .getBody();
org.springframework.http.HttpHeaders headers = new org.springframework.http.HttpHeaders();
headers.set("Accept", "application/xml");
headers.set("username", "ABC");
在这个REST get调用中,我需要传递上面的头,比如Accept和username。为了在RestTemplate中传递头,需要对相同的代码进行哪些更改。
通用rest模板执行器方法:
public <T, E extends TIBCOResponse> E executeRequest(HttpMethod method,
HttpHeaders httpHeaders,
String url,
T requestBody,
Map<String, String> paramters,
Class<E> clazz) {
HttpEntity<T> entity = new HttpEntity<>(requestBody, httpHeaders);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<E> response = restTemplate.exchange(url, method, entity, clazz, paramters);
return response.getBody();
}
服务方法实现:
public ResponseObject FuncCallerInsideRest(IntegrationDTO integrationDTO) {
String OPERATION_URL = "/FindAccountInfo?accountNumber="+integrationDTO.getAccountNumber();
Map<String, String> parameters = new HashMap<>();
httpHeaders = new HttpHeaders();
httpHeaders.set("RetryLimit", "2");
httpHeaders.set("Authorization", "abcd");
httpHeaders.set("SessionID", integrationDTO.getSessionID());
ResponseObject ResponseObject = this.executeRequest(HttpMethod.GET, httpHeaders,
BASE_URL.concat(PATH_URL.concat(OPERATION_URL)), null, parameters,
ResponseObject.class);
return ResponseObject;
}
getForEntity
不支持设置标题。使用交换
:
HttpHeaders headers = new HttpHeaders();
headers.set("Accept", "application/xml");
headers.set("username", "ABC");
HttpEntity entity = new HttpEntity(headers);
ResponseEntity<ResponseObject> response = restTemplate.exchange(
url, HttpMethod.GET, entity,ResponseObject.class);
使用您的代码为:
org.springframework.http.HttpHeaders headers = new
org.springframework.http.HttpHeaders();
headers.set("Accept", "application/xml");
headers.set("username", "ABC");
String url = "http://<hostname>:7001/api?id=231";
ResponseEntity<ResponseObject> getEntity =
this.restTemplate.exchange(url,HttpMethod.GET,new HttpEntity<>( headers),ResponseObject.class);
return getEntity .getBody();
这是我的第一篇文章。 我刚刚开始学习围棋和Angular,我正试图将角应用程序连接到围棋api。这两篇文章我都写过了,我一直在寻找问题的根源。我认为这是一个CORS问题,但是如果我不在角超文本传输协议请求中包含标题代码行,它就可以正常工作。在这一点上,我只是想添加标题。授权代码尚未实现。 这两个应用程序都在本地运行,Go应用程序位于端口5000,Angular应用程序位于端口4200 不起作用的角
我正在使用GWT和Spring controller来管理http流量。有些请求可能需要很长时间,但我希望在超过给定时间时终止请求。 我如何配置超时Spring。我也使用Apache Tomcat 7.0。我试图在tomcat上inrease最大线程,但有一段时间tomcat工作缓慢,因为请求线程不会死。
我有专有的基于http的API要从JMeter测试。不幸的是,API的一些endpoint希望http DELETE方法带有请求体(我知道它的API设计有问题,使用DELETE with request body,但我无法更改该API,需要对其进行测试)。 如何从JMeter测试它?似乎标准的HttpRequest采样器在没有任何警告的情况下默默忽略了我的身体有效载荷。(当我在《邮递员》中尝试它时
我必须向一些没有任何参数的API发送GET请求,所以我编写了代码: 当API url是HTTP时,它可以工作,但不适用于HTTPS。它说: 太阳安全验证器。ValidatorException:PKIX路径生成失败:sun。安全供应商。certpath。SunCertPathBuilderException:找不到请求目标的有效证书路径;嵌套的异常是javax。网ssl。例外:太阳。安全验证器。V
使用vertx http代理(https://github.com/eclipse-vertx/vertx-http-proxy),添加/插入自定义身份验证机制(例如基于客户端证书的LDAP身份验证和为后端目标填充授权基本标头)的最佳方式是什么?
为什么它不起作用? 返回java.net中的错误=