cUrl не видит параметры передаваемые в --data из java

Рейтинг: 0Ответов: 1Опубликовано: 24.05.2023

Следующий cUrl работает из командной строки:

/opt/cprocsp/bin/amd64/curl -k --header 'Content-Type: application/json; charset=utf-8' --location https://test.croinform.ru/request --data '{"UserName":"xxxxxxxx","Password":"xxxxxxx","SubSystem":"FL","Services":["Exp"],"Params":{"SurName":"Иванов","FirstName":"Иван","MiddleName":"Иванович","DateOfBirth":"01.01.1911"}}'

Но, когда его запускаю из Java, то сервер не видит параметров UserName/Password и т.д.

ProcessBuilder processBuilder = new ProcessBuilder(curl);
Process process = processBuilder.start();

Ответы

▲ 0

Это может быть связано с тем, что при запуске команды cUrl из Java вы не передаете параметры в нужном формате. Попробуйте использовать класс ProcessBuilder для создания процесса и передачи параметров в правильном формате. Вот пример:

ProcessBuilder processBuilder = new ProcessBuilder("/opt/cprocsp/bin/amd64/curl", "-k", "--header", "Content-Type: application/json; charset=utf-8", "--location", "<https://test.croinform.ru/request>", "--data", "{\\"UserName\\":\\"xxxxxxxx\\",\\"Password\\":\\"xxxxxxx\\",\\"SubSystem\\":\\"FL\\",\\"Services\\":[\\"Exp\\"],\\"Params\\":{\\"SurName\\":\\"Иванов\\",\\"FirstName\\":\\"Иван\\",\\"MiddleName\\":\\"Иванович\\",\\"DateOfBirth\\":\\"01.01.1911\\"}}");
Process process = processBuilder.start();

Убедитесь, что вы передаете параметры в правильном формате в соответствии с требованиями сервера.