Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带有路径变量的RestTemplate GET方法_Java_Spring_Spring Boot_Httpclient_Resttemplate - Fatal编程技术网

Java 带有路径变量的RestTemplate GET方法

Java 带有路径变量的RestTemplate GET方法,java,spring,spring-boot,httpclient,resttemplate,Java,Spring,Spring Boot,Httpclient,Resttemplate,我正在尝试使用rest模板进行rest调用。我有两个头参数和一个路径变量要为API调用设置。下面是我的实现。但是我收到了HttpServerErrorException:500 null。我是否以正确的方式设置path变量 目标API:drs/v1/{caseId} String url = configProperties.getCaseCreateUrl(); if(!StringUtils.isEmpty(url)){

我正在尝试使用rest模板进行rest调用。我有两个头参数和一个路径变量要为API调用设置。下面是我的实现。但是我收到了HttpServerErrorException:500 null。我是否以正确的方式设置path变量

目标API:drs/v1/{caseId}

String url = configProperties.getCaseCreateUrl();
                if(!StringUtils.isEmpty(url)){
                        url = url.replace(ApplicationConstants.DOMAIN_NAME,currentUser.domainUrl());
                        url = url+ caseId;
                }
                HttpHeaders headers = new HttpHeaders();
                headers.set(ApplicationConstants.PS_TOKEN_HEADER, currentUser.getToken());
                headers.set(ApplicationConstants.WORGROUP_HEADER, currentUser.getWorkgroupId());
                headers.set(ApplicationConstants.DOMAIN_HEADER, currentUser.getDomainId());
                headers.set(HttpHeaders.CONTENT_TYPE, MediaType.ALL_VALUE);
                HttpsTrustManager.allowAllSSL();
                RestTemplate restTemplate = new RestTemplate();
                HttpEntity<Map<String, String>> requestEntity = new HttpEntity(null, headers);
                ResponseEntity<CaseDetailsDTO> response = restTemplate.exchange(url, HttpMethod.GET, requestEntity, CaseDetailsDTO.class);
String url=configProperties.getCaseCreateUrl();
如果(!StringUtils.isEmpty(url)){
url=url.replace(ApplicationConstants.DOMAIN_NAME,currentUser.domainUrl());
url=url+caseId;
}
HttpHeaders=新的HttpHeaders();
set(ApplicationConstants.PS_TOKEN_头,currentUser.getToken());
headers.set(ApplicationConstants.WORGROUP_头,currentUser.getWorkgroupId());
headers.set(ApplicationConstants.DOMAIN_头,currentUser.getDomainId());
headers.set(HttpHeaders.CONTENT\u TYPE、MediaType.ALL\u值);
HttpsTrustManager.allowAllSSL();
RestTemplate RestTemplate=新RestTemplate();
HttpEntity requestEntity=新的HttpEntity(空,标题);
ResponseEntity response=restemplate.exchange(url、HttpMethod.GET、requestEntity、CaseDetailsDTO.class);

我提供了一个RestTemplate GET方法的代码片段和路径变量示例

public ResponseEntity<List<String>> getNames(long id) {
        
            final String url = "https://some/{id}/name";
            //with cookies
            ResponseEntity<String> cookie = getCookies();
            
            String set_cookie = cookie.getHeaders().getFirst(HttpHeaders.SET_COOKIE);

            HttpHeaders headers = new HttpHeaders();
            headers.setContentType(MediaType.APPLICATION_JSON);
            headers.add("Cookie", set_cookie);
            HttpEntity request = new HttpEntity(headers);
            
            ResponseEntity<List<String>> response = restTemplate.exchange(url, HttpMethod.GET, request,new ParameterizedTypeReference<List<String>>(){},id);
            return response;
    }
public ResponseEntity getNames(长id){
最终字符串url=”https://some/{id}/name”;
//用饼干
ResponseEntity cookie=getCookies();
字符串set\u cookie=cookie.getHeaders().getFirst(HttpHeaders.set\u cookie);
HttpHeaders=新的HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
添加(“Cookie”,set_Cookie);
HttpEntity请求=新的HttpEntity(标头);
ResponseEntity response=restemplate.exchange(url,HttpMethod.GET,请求,新参数化类型引用(){},id);
返回响应;
}

url=url+caseId;应该是url=url+“/”+caseId;当上游服务有内部错误时,抛出500。可能您需要检查您的上游服务logsurl已经跟在“/”后面,所以我不必添加。除了500 null之外,我没有看到任何内部错误。知道如何启用上游日志吗?500表示服务器错误。在担心您的请求之前,先担心服务器。您可以发布日志吗?这将有助于缩小问题的范围。