Sam*_*eer 5 java spring resttemplate
这是我们的休息模板配置
@Bean
public RestTemplate infoBloxRestTemplate() {
RestTemplate restTemplate=new RestTemplate();
ArrayList<ClientHttpRequestInterceptor> interceptors = new ArrayList<>();
interceptors.add(httpBasicAuthenticationInterceptor());
restTemplate.setInterceptors(interceptors);
restTemplate.getMessageConverters().add(jacksonConverter());
restTemplate.setRequestFactory(genericHttpRequestFactory());
return restTemplate;
}
Run Code Online (Sandbox Code Playgroud)
我们正在尝试进行POST调用,该调用与Postman一起成功运行并返回正确的响应.
final HttpHeaders headers = new HttpHeaders();
headers.add("Accept", "application/json");
headers.add("Content-Type", "application/json");
HttpEntity<Object> httpEntity = new HttpEntity<Object>(record, headers);
StringBuilder uri = new StringBuilder(infobloxRestClient.createUrl("/record:host"));
infobloxRestClient.getRestTemplate().exchange(uri.toString(), HttpMethod.POST, httpEntity, String.class);
Run Code Online (Sandbox Code Playgroud)
但是这个POST调用失败并出现以下错误.这是我的堆栈跟踪:
com.sun.xml.ws.server.sei.TieHandler createResponse
SEVERE: null
java.lang.UnsupportedOperationException
at java.util.Collections$UnmodifiableCollection.add(Unknown Source)
at org.springframework.http.HttpHeaders.add(HttpHeaders.java:558)
at com.test.externalinterfaces.HTTPBasicAuthenticationInterceptor.intercept(HTTPBasicAuthenticationInterceptor.java:30)
at org.springframework.http.client.InterceptingClientHttpRequest$RequestExecution.execute(InterceptingClientHttpRequest.java:81)
at org.springframework.http.client.InterceptingClientHttpRequest.executeInternal(InterceptingClientHttpRequest.java:67)
at org.springframework.http.client.AbstractBufferingClientHttpRequest.executeInternal(AbstractBufferingClientHttpRequest.java:46)
at org.springframework.http.client.AbstractClientHttpRequest.execute(AbstractClientHttpRequest.java:49)
at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:488)
at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:452)
Run Code Online (Sandbox Code Playgroud)
在这方面的任何帮助将非常有帮助.
为了让更多人知道这个问题:
@Sameer,我发现问题是您正在使用HttpHeaders,您可以尝试使用此代码构建标头
MultiValueMap<String, String> headers =new LinkedMultiValueMap<String, String>();
,而不是使用HttpHeaders然后在您的HttpEntity构建对象实体中,
new HttpEntity<Object>(record, headers);
然后它应该解决问题。
| 归档时间: |
|
| 查看次数: |
4759 次 |
| 最近记录: |