Java: отправить команду POST curl, чтобы отправить сообщение в slack - PullRequest
0 голосов
/ 11 октября 2019

У меня есть автоматизация Java Selen, и мне нужно отправить следующую команду CURL в мой код Java:

curl -X POST -H 'Content-type: application/json' --data '{"text":"Test"}' https://hooks.slack.com/services/XXX/YYY/ZZZ

Я попробовал некоторые решения, которые я нашел здесь, как:

String command = "curl -X POST -H 'Content-type: application/json' --data '{"text":"Test"}' https://hooks.slack.com/services/XXX/YYY/ZZZ";
Runtime.getRuntime().exec(command);

А также этот:

HttpClient client = HttpClientBuilder.create().build();
HttpPost post = new HttpPost("https://hooks.slack.com/services/XXX/YYY/ZZZ");

List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("text", "test"));
post.setEntity(new UrlEncodedFormEntity(nameValuePairs));

HttpResponse response = client.execute(post);

Сценарий выполняется, но ничего не происходит (нет сообщений / предупреждений / ошибок на консоли Eclipse), он просто выполняется и проходит успешно, но сообщение не отправляется по каналу Slack. Если я запускаю эту же команду curl в своем терминале linux, сообщение отправляется в Slack.

Я все еще изучаю Java, поэтому, вероятно, я явно что-то не так делаю.

1 Ответ

0 голосов
/ 11 октября 2019

Я мог бы наконец заставить его работать:

String[] command = new String[] { "/bin/bash", "-c", "curl -X POST -H 'Content-type: application/json' --data '{\"text\":\"test\"}' https://hooks.slack.com/services/AAA/BBB/CCC"};
Process proc = new ProcessBuilder(command).start();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...