Я пытаюсь использовать soap сервис из Spring RestTemplate в Java. Я добавил несколько заголовков и параметров запроса и отправил его в метод PostForEntity, но его метод 405 не разрешен .
Я знаю причину, по которой сервер принимает этот вызов как GET, однако он может быть только почтовым. Я пытался изменить свои заголовки и изменил мою просьбу, но ничего не достигнуто. Кто-нибудь может подсказать, что не так с моим подходом / кодом?
String host = "172.18.101.2";
String port = "80";
System.out.println("Using proxy: " + host + ":" + port);
System.setProperty("https.proxyHost", host);
System.setProperty("https.proxyPort", port);
SSLUtilities.trustAllHostnames();
SSLUtilities.trustAllHttpsCertificates();
HttpHeaders headers = new HttpHeaders();
headers.setContentType(MediaType.TEXT_XML);
headers.setAccept(Collections.singletonList(MediaType.APPLICATION_JSON));
headers.add("SOAPAction", "http://ApiConnectFTwsdlDefinition/FundsTransfer");
headers.add("X-IBM-Client-Id", "0146b9a4-7e99-4c83-8e9e-6049cfec55da");
headers.add("Authorization", "Bearer AAIkMDE0NmI5YTQtN2U5OS00YzgzLThlOWUtNjA0OWNmZWM1NWRhV8EJd7oTPaijRicPTNxSH_h21meA_4h3Ty_QDOoXXRPC2f_MLk0BLBx4Q0DWZMHTfwTwur3BaiiF7y9uFcCkkj8fuTGK_yujrtuRY-4AZMK8hRPSppw3HhKYR84R9c9Wy9j6czOKqUklfLO6Zgb19A");
MultivaluedMap body = new MultivaluedHashMap();
JSONObject requestObj = new JSONObject();
requestObj.put("SystemName", "CDC");
requestObj.put("RequestID", "222");
requestObj.put("TenantID", "abc11323===+");
requestObj.put("CreditAccount", "0010000108290010");
requestObj.put("DebitAmount", "100");
requestObj.put("MappingID", "Remarks");
requestObj.put("Narration", "remarks");
body.add("data", requestObj.toString());
RestTemplate restTemplate = new RestTemplate();
ResponseEntity<String> response = restTemplate.postForEntity("https://221.120.211.69:443/abl-api/uat/ApiConnectFTwsdlDefinitionHttpService?wsdl", requestObj.toString(), String.class);
System.out.println("Status Code >>> " + response.getStatusCode());