![](/img/trans.png)
[英]org.springframework.web.client.HttpClientErrorException: 400 Bad Request
[英]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.