有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java HttpClientErrorException$禁止:403:Rest模板Spring Jersey

我需要将httppost转换为rest模板。它工作得很好,但我也必须按照要求迁移这部分代码。我们必须将httppost代码迁移到rest模板。我在这里附加了旧的工作代码和尝试的rest模板代码以及错误日志

JSON和URL的模拟格式。不是真的

字符串jsonstr=JSON {“业务单元”:“ABC”、“时区”:“美国/芝加哥”、“最新更新用户”:“abc123”、“时钟”:“25”、“地区”:“MW”}

字符串postrl=URL https://corners.test.ttm.com/eamresource/goalClock/8708

旧的工作代码:

    public String httpPostData(String jsonstr, String posturl) throws IOException {
        String result = "";
            HttpPost httpPost = new HttpPost(posturl);
            httpPost.setEntity(new StringEntity(jsonstr, ContentType.APPLICATION_JSON));
            httpPost.addHeader("Content-Type", "application/json");
            httpPost.addHeader("Authorization", authString);
            System.out.println("JSON to send: " + jsonstr);
            logger.info("JSON to send: " + jsonstr);
            try (CloseableHttpClient closeableHttpClient = HttpClients.createDefault();
                    CloseableHttpResponse closeableHttpResponse = closeableHttpClient.execute(httpPost);) {
                logger.info("response status code :" + closeableHttpResponse.getStatusLine().getStatusCode());
                logger.info("response status line :" + closeableHttpResponse.getStatusLine());
                result = EntityUtils.toString(closeableHttpResponse.getEntity());
                logger.info("response data :" + result);
                return result;
            } 
        }

REST模板

    public String httpPostData(String jsonstr, String posturl) throws IOException {
        CloseableHttpClient httpClient = HttpClients.custom()
                .setSSLHostnameVerifier(new NoopHostnameVerifier())
                .build();
        HttpComponentsClientHttpRequestFactory requestFactory = new HttpComponentsClientHttpRequestFactory();
        requestFactory.setHttpClient(httpClient);
        RestTemplate restTemplate = new RestTemplate();
        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers..addHeader("Authorization", authString);
        headers.add("user-agent", "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/54.0.2840.99 Safari/537.36");
        HttpEntity<String> entity = new HttpEntity<String>(jsonstr,headers);
        String result = restTemplate.postForObject(posturl, entity, String.class);
        return result;
        }

错误日志

org.springframework.web.client.HttpClientErrorException$Forbidden: 403 : [{"status":"failure","resourceID":"8708","errorCode":"eam013","errorMessage":"Resource Already Exists"}]
    at org.springframework.web.client.HttpClientErrorException.create(HttpClientErrorException.java:109)
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:170)
    at org.springframework.web.client.DefaultResponseErrorHandler.handleError(DefaultResponseErrorHandler.java:112)
    at org.springframework.web.client.ResponseErrorHandler.handleError(ResponseErrorHandler.java:63)
    at org.springframework.web.client.RestTemplate.handleResponse(RestTemplate.java:785)
    at org.springframework.web.client.RestTemplate.doExecute(RestTemplate.java:743)
    at org.springframework.web.client.RestTemplate.execute(RestTemplate.java:677)
    at org.springframework.web.client.RestTemplate.postForObject(RestTemplate.java:421)
    at com.att.dmp.genericRestClient.GenericRestClientImpl.httpPostData(GenericRestClientImpl.java:47)
    at com.att.dmp.service.httpclient.impl.ClockProcessServiceImpl.lambda$2(ClockProcessServiceImpl.java:100)
    at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1604)
    at java.util.concurrent.CompletableFuture$AsyncSupply.exec(CompletableFuture.java:1596)
    at java.util.concurrent.ForkJoinTask.doExec(ForkJoinTask.java:289)
    at java.util.concurrent.ForkJoinPool$WorkQueue.runTask(ForkJoinPool.java:1067)
    at java.util.concurrent.ForkJoinPool.runWorker(ForkJoinPool.java:1703)
    at java.util.concurrent.ForkJoinWorkerThread.run(ForkJoinWorkerThread.java:172)

共 (0) 个答案