Помогите разобраться почему происходит ошибка в post запросе и как сделать правильно? Java
делаю POST запрос по сайту https://belkacredit.ru/applica... tion/phone, необходимо отправить запрос в форму и получить ответ(откроется окно для подтверждения смс кода)
Вот форма, в которую отправляется запрос:
<input name="mobile_phone" type="tel" inputmode="tel" class="input not-empty" autocomplete="tel" actionname="mobile_phone" value="+7 (XXX) XXX XX XX">
вот как делаю в java:
public class BelkaCredit {
private final String URL = "https://belkacredit.ru/application/registration/phone";
void parsePhoneNumber(String number) throws IOException {
Document doc = Jsoup.connect(URL)
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.followRedirects(true)
.ignoreContentType(true)
.userAgent("Mozilla/5.0")
.data("phone_number", number)
.post();
System.out.println(doc);
}}
на выходе такая ошибка:
HTTP error fetching URL. Status=405, URL=[https://belkacredit.ru/application/registration/phone]
Может я что то не то делаю, прошу совета или помощи.
Ответы (2 шт):
Ваш код потенциально может привести к исключению java.net.MalformedURLException, так как вы используете Jsoup.connect(URL), и URL – это строка без проверки на корректность URL-адреса.
Чтобы избежать этой ошибки, вам нужно обернуть блок кода в try-catch и обработать MalformedURLException. Вот исправленный код:
public class BelkaCredit {
private final String URL = "https://belkacredit.ru/application/registration/phone";
void parsePhoneNumber(String number) throws IOException {
try {
Document doc = Jsoup.connect(URL)
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.followRedirects(true)
.ignoreContentType(true)
.userAgent("Mozilla/5.0")
.data("phone_number", number)
.post();
System.out.println(doc);
} catch (MalformedURLException e) {
e.printStackTrace(); // или обработайте исключение по вашему усмотрению
}
}
}
Также обратите внимание, что вам нужно импортировать класс MalformedURLException:
import java.net.MalformedURLException;
Это позволит вам корректно обрабатывать исключения, связанные с URL-адресом.
Кажется, у вас есть ошибка в теге <input> HTML и в параметре data в методе Jsoup.connect(). Вот исправленный код:
<input name="phone_number" type="tel" inputmode="tel" class="input not-empty" autocomplete="tel" actionname="mobile_phone" value="+7 (XXX) XXX XX XX">
public class BelkaCredit {
private final String URL = "https://belkacredit.ru/application/registration/phone";
void parsePhoneNumber(String number) throws IOException {
Document doc = Jsoup.connect(URL)
.header("Content-Type", "application/json")
.header("Accept", "application/json")
.followRedirects(true)
.ignoreContentType(true)
.userAgent("Mozilla/5.0")
.data("mobile_phone", number) // Updated parameter name to match your HTML input
.post();
System.out.println(doc);
}
}
Я изменил атрибут `name` в теге `<input>` на "phone_number", чтобы он соответствовал параметру, передаваемому в методе `Jsoup.connect()`.