Вот код, который я запускал в eclipse на ma c для выполнения команды.
String cmd = "curl -i -X POST <webaddress> -H 'Cache-Control: no-cache' -H 'Content-Type: application/json' -H 'Postman-Token: <Postman-token>' -d '{ \"Username\":\"<username>\", \"Password\":\"<password\" }'";
System.out.println(MyUtils.executeCommand(cmd));
Вот метод MyUtils.executeCommand.
public static String executeCommand(String command) {
StringBuffer output = new StringBuffer();
Process p;
try {
p = Runtime.getRuntime().exec(command);
p.waitFor();
BufferedReader reader =
new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = "";
while ((line = reader.readLine())!= null) {
//if(line.startsWith("authorization:")){
output.append(line + "\n");
//}
}
} catch (Exception e) {
e.printStackTrace();
}
return output.toString();
}
Когда я запускаю из Eclipse, я получаю:
date: Thu, 28 May 2020 20:09:53 GMT
content-type: application/json; charset=utf-8
content-length: 152
cache-control: no-cache
pragma: no-cache
expires: -1
server: Microsoft-IIS/10.0
x-powered-by: ASP.NET
{"errorCode":0,"Title":"Error logging in.","Description":"There was an issue with the login data that was provided. Please try again.","ShowCTA":false}
Тогда как, когда я запускаю с терминала ma c, я получаю верхнюю часть и код авторизации. Я не уверен, почему в затмении все будет иначе. Есть ли какая-то конфигурация в eclipse, которую мне нужно изменить, или может быть какая-то безопасность на стороне сервера, блокирующая eclipse?
Я могу запустить другую команду из eclipse в порядке. Когда входная строка была «ls» или «curl http://www.tutorialspoint.com -i», я получил те же результаты от eclipse, что и от терминала.