1 java openshift http-patch spring-boot
我的 OpenShift Api 补丁请求有问题。这是我的实际代码:
public static HttpStatus PatchHTTPRequestCustomHeaders(String url, String data) {
String Bearer = "ayJhbGciOiJSUzI1NiIs...";
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.APPLICATION_JSON);
headers.set("Authorization", "Bearer "+Bearer);
headers.set("X-HTTP-Method-Override", "PATCH");
headers.set("Content-Type", "application/json-patch+json");
headers.set("Accept", "application/json");
final HttpEntity<String> entity = new HttpEntity<String>(data, headers);
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class, 1);
if(response.getStatusCode() == HttpStatus.OK) {
return HttpStatus.OK;
}else {
return null;
}
}
Run Code Online (Sandbox Code Playgroud)
数据包含一个op replace or add or remove ...
PostMan 错误:500 内部服务器错误
春天:
2020-02-14 10:12:28.918 ERROR 14944 --- [nio-8169-exec-2] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed; nested exception is org.springframework.web.client.HttpClientErrorException$MethodNotAllowed: 405 Method Not Allowed: [{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"the server does not allow this method on the requested resource","reason":"MethodNotAllowed","details":{},"code":405}
]] with root cause
org.springframework.web.client.HttpClientErrorException$MethodNotAllowed: 405 Method Not Allowed: [{"kind":"Status","apiVersion":"v1","metadata":{},"status":"Failure","message":"the server does not allow this method on the requested resource","reason":"MethodNotAllowed","details":{},"code":405}
]
Run Code Online (Sandbox Code Playgroud)
我的 Php 补丁没有任何问题...
我希望有人知道发生这件事的原因。
编辑 :
public static void disableSSLCertificateChecking() {
TrustManager[] trustAllCerts = new TrustManager[] { new X509TrustManager() {
public X509Certificate[] getAcceptedIssuers() {
return null;
}
@Override
public void checkClientTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
// Not implemented
}
@Override
public void checkServerTrusted(X509Certificate[] arg0, String arg1) throws CertificateException {
// Not implemented
}
} };
try {
SSLContext sc = SSLContext.getInstance("TLS");
sc.init(null, trustAllCerts, new java.security.SecureRandom());
HttpsURLConnection.setDefaultSSLSocketFactory(sc.getSocketFactory());
} catch (KeyManagementException e) {
e.printStackTrace();
} catch (NoSuchAlgorithmException e) {
e.printStackTrace();
}
}
Run Code Online (Sandbox Code Playgroud)
发送补丁请求时我遇到了同样的问题。这是这个问题的解决方案:
restTemplate.setRequestFactory(new HttpComponentsClientHttpRequestFactory())
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
4725 次 |
| 最近记录: |