У меня есть самый необычный запрос, который отлично работает на моем локальном компьютере.Однако всякий раз, когда я использую тот же запрос на нашем сервере UAT, он возвращает Error 400
, что эквивалентно неверному запросу.
Я узнал, что это означает, что в синтаксисе запроса может быть что-то не так.или, может быть, что-нибудь близкое к этому.Однако мой запрос работает, когда я использую его с локального компьютера, поэтому я предполагаю, что это означает, что мой код работает нормально.
В результате у меня заканчиваются идеи, какие части я должен проверить, чтобы сделать эту работу.Ниже приведены мои коды, которые я пометил, чтобы указать, какой из них был использован с моего локального и который использовался с сервера UAT:
С локального:
public static String getConsumerBill(String accNum) {
//getToken() is a method that returns a Token object that I made
Token accessToken = getToken();
HttpResponse<String> httpResponse = null;
try {
httpResponse = Unirest.post("http://api.nuvelco.com/v1/bill/inquiry")
.header("accept", "application/json")
.header("content-type", "application/json")
.header("authorization", "Bearer " + response.getAccess_token())
.header("cache-control", "no-cache")
.body("{\"accountNo\":\"" + accNum + "\"}")
.asString();
} catch (UnirestException e) {
e.printStackTrace();
}
return httpResponse.getBody();
}
с сервера UAT
public static String getConsumerBill (String accNum) {
Token accessToken = getToken();
HttpResponse<String> httpResponse = null;
try {
/*
urlInquiry is a global variable that gets its value from a database
the value it gets is the same as the url from above
*/
httpResponse = Unirest.post(urlInquiry)
.header("accept", "application/json")
.header("content-type", "application/json")
.header("authorization", "Bearer " + accessToken.getAccess_token())
.header("cache-control", "no-cache")
.body("{\"accountNo\":\"" + accNum + "\"}")
.asString();
} catch (UnirestException e) {
e.printStackTrace();
}
return httpResponse.getBody();
}
Как вы, вероятно, можете сказать, единственное отличие, которое я сделал, было с URL.Он жестко запрограммирован на моем локальном компьютере, а сервер с UAT получает его из базы данных.Кроме этого, я не уверен, почему версия UAT возвращает ответ Bad Request
.
Запрос от моего локального сервера возвращает ответ ниже с кодом ошибки 404, который является нормальным, и это означает, что он работает:
{"message":"Invalid account no.","code":1}
Возвращается сообщение с сервера UAT с кодом ошибки 400:
{"error": "invalid_grant"}
Кроме того, я даже не могу напечатать это тело, но могу распечататькод статуса.Я хотел спросить нашего клиента об этом, но я продолжал думать, что запрос отлично работает на моем локальном компьютере, поэтому это означает, что его веб-служба работает нормально.
Пожалуйста, скажите мне, если есть какая-либо другая информация, которую я должен предоставить.