【发布时间】:2017-11-02 09:42:35
【问题描述】:
我正在尝试使用 RESTTemplate 将 XML 正文发布到 HTTP 端点,但是抛出了以下异常 - “org.springframework.web.client.RestClientException:无法提取响应:找不到 Content-Type”。
我已检查并且 XML 文件已成功发布到端点,但是我无法解决此异常 - 显然我做错了什么。我想我可能需要使用 HTTP Mapping Converter ,但我不知道如何实现。
def post(String jenkinsURL, String username, String apiCredentials, String jobName) {
RestTemplate rest = new RestTemplate()
String url = "http://$jenkinsURL//createItem?name=$jobName"
def jenkinsConfigPath = "src/main/resources/JenkinsConfig.xml"
def encoding = Base64.getEncoder().encodeToString((username + ":" + apiCredentials).getBytes())
String xmlConfigFile = jenkinsConfigReader.read(jenkinsConfigPath)
HttpHeaders headers = new HttpHeaders()
headers.setContentType(MediaType.APPLICATION_XML)
headers.add("Authorization", "Basic " + encoding)
HttpEntity<String> entity = new HttpEntity<String>(xmlConfigFile, headers)
rest.exchange(url, HttpMethod.POST, entity, String.class)
【问题讨论】:
-
我想通了。在使用 Gradle 进行编译时,我已将 org.springframework 的版本更改为“编译组:'org.springframework',名称:'spring-web',版本:'4.3.7.RELEASE'”。现在我对相同的语法没有任何问题。不确定这是否是最好的方法!
标签: http resttemplate httpentity