Я пытаюсь отправить данные в кодировке url с помощью метода HttpURLConnection в java. Клиент поделился приведенной ниже строкой из тестера Soap UI в качестве образца запроса:
Я перепробовал все комбинации отправки данных с помощью java. Я получаю код ответа 200, но ответ показывает, что в запросе отсутствуют обязательные параметры. Пожалуйста, помогите, если в моем коде есть ошибка, при написании запроса.
StringBuffer response = new StringBuffer();
String EndPointURL = url;
String requestXML = "username=bk&password=bk&customerid=78233209438&amountcredit=100&operationdate=2018-07-17&event=9977773&reference=13903232&account=000000&valuedate=2018-07-17&terminal=00010";
String encodedData = URLEncoder.encode(requestXML, "UTF-8");
System.out.println("Encoded data: " + encodedData);
URL localURL = new URL(EndPointURL);
HttpURLConnection con = (HttpURLConnection) localURL.openConnection();
con.setRequestProperty("Content-Type", "application/x-www-form-urlencoded");
con.setRequestProperty("Accept-Charset", charset);
con.setRequestProperty("Content-Length", Integer.toString(encodedData.length()));
OutputStream os = con.getOutputStream();




если вы используете Okhttp3, используйте этот код:
OkHttpClient client = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/x-www-form-urlencoded");
RequestBody body = RequestBody.create(mediaType, "string-that-you-need-to-pass-in-body");
Request request = new Request.Builder()
.url("url-string")
.post(body)
.addHeader("content-type", "application/x-www-form-urlencoded")
.build();
Response response = client.newCall(request).execute();
Для Юнирест:
HttpResponse<String> response = Unirest.post("url-string")
.header("content-type", "application/x-www-form-urlencoded")
.body("string-that-you-need-to-pass-in-body")
.asString();
Поверьте, вместо body нужно было бы использовать метод field, как в field ("имя пользователя", "имя пользователя") .field ("пароль", "пароль")