簡體   English   中英

org.springframework.web.client.HttpClientErrorException$Unauthorized' 異常

[英]org.springframework.web.client.HttpClientErrorException$Unauthorized' exception

大家好,我的問題可能很簡單,但我是一名初級開發人員,這方面的任何幫助將不勝感激! 因此,當我使用重新模板調用此 url 以獲取通知時,但出現錯誤

try {
        String authLogin = propertiesService.getValue("texnomart_auth_login");
        String authPassword = propertiesService.getValue("texnomart_auth_password");
String authLoginAndPassword = "Basic " + base64Encoder.encodeToString(propertiesService.getValue(authLogin+":"+authPassword).getBytes());
        String apiKey = propertiesService.getValue("texnomart_api_key");
        String url = propertiesService.getValue("texnomart_check_url");
        String mobilePhone = "";
        String bonusCardNumber = "";
        Boolean contractType = false;

        for (PaymentDto.ValueData data : paymentDto.getFieldValueList()) {
            if (Objects.isNull(data.getFieldAlias())) continue;
            if (data.getFieldAlias().equals("phone")) mobilePhone = data.getValue();
            if (data.getFieldAlias().equals("bc_number")) bonusCardNumber = data.getValue();
        }

        if (StringUtils.isEmpty(mobilePhone) || StringUtils.isEmpty(bonusCardNumber)) {
            return additionalSuppliersReturn;
        }

        DateTimeFormatter format = DateTimeFormatter.ofPattern("dd.MM.yyyy hh:mm:ss");

        TexnoMartRequestDto texnoMartRequestDto = new TexnoMartRequestDto()
                .setMobilePhone(mobilePhone)
                .setBonusCardNumber(bonusCardNumber)
                .setDate(format.format(LocalDateTime.now()));

在下面我嘗試使用帶有編碼類型的基本身份驗證,但這種方法也沒有幫助

        HttpHeaders headers = new HttpHeaders();
        headers.setContentType(MediaType.APPLICATION_JSON);
        headers.setBasicAuth(authLogin, authPassword);
        headers.set("api-key", apiKey);

        String externalId = generateToken();
        ObjectMapper mapper = new ObjectMapper();
        logService.logExternal(mapper.writeValueAsString(texnoMartRequestDto), LogType.REQUEST, externalId, url);
        ResponseEntity<String> response = restTemplate.exchange(url, HttpMethod.GET, new HttpEntity<>(texnoMartRequestDto, headers), String.class);**//here i get an exception**
        logService.logExternal(response.getBody(), LogType.RESPONSE, externalId, url);

當我在郵遞員中使用此網址時,我成功收到回復

"request": {
            "auth": {
                "type": "basic",
                "basic": [
                    {
                        "key": "password",
                        "value": "123123",
                        "type": "string"
                    },
                    {
                        "key": "username",
                        "value": "Apelsinn",
                        "type": "string"
                    }
                ]
            },
            "method": "GET",
            "header": [
                {
                    "key": "api-key",
                    "value": "4d8edae8-df0c4c5e-b4acfaac-bec608e4",
                    "type": "text"
                }
            ],
            "body": {
                "mode": "raw",
                "raw": "{"phone": "998935919989","date":"26.10.2021 00:00:01","bc_number": "513168315"}",
                "options": {
                    "raw": {
                        "language": "json"
                    }
                }
            },
            "url": {
                "raw": ["http://vpn.texnomart.uz:8282/ut_trendy_xran_javohir/hs/api/v1.1/debt/"][1],
                "protocol": "http",
                "host": [
                    "vpn",
                    "texnomart",
                    "uz"
                ],
                "port": "8282",
                "path": [
                    "ut_trendy_xran_javohir",
                    "hs",
                    "api",
                    "v1.1",
                    "debt",
                    ""
                ]
            }
        },

在這里使用郵遞員的成功響應

在此處輸入圖片說明

您可能對 URL 或 HttpEntity 類型有問題。 所以試試這個看看結果。

 ResponseEntity<String> response = restTemplate.exchange( "https://url", 
 HttpMethod.GET, new HttpEntity<TexnoMartRequestDto> 
 (texnoMartRequestDto,headers),  String.class);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM