Я хочу использовать curl в программе Java, используя Runtime.getRuntime().exec
Полный фрагмент приведен ниже, но моя проблема сводится к тому, что я получаю ответ об ошибке, когда использую curl command в Runtime.getRuntime().exec(command) но когда я System.out.println ввожу команду, копирую и вставляю ее в оболочку и выполняю ее там, все работает нормально.
System.out.println(command);
Runtime.getRuntime().exec(command);
Что может вызвать такой разный результат между выполнением во время выполнения и выполнением команды в оболочке.
Спасибо за любые подсказки
Мартин
обновления:
Ответ об ошибке, который я получаю при использовании Runtime: {"error":"unauthorized"}
Как я вижу из команд, это кажется неясным. Я не получаю никаких исключений, через которые проходит команда curl, но ответ json такой, как указано выше.
String APP_ID = "XXX";
String REST_API_KEY = "YYY";
String header = "-H \"X-Parse-Application-Id: " + APP_ID
+ "\" -H \"X-Parse-REST-API-Key: " + REST_API_KEY
+ "\" -H \"Content-Type: application/zip\" ";
public void post2Parse(String fileName) {
String outputString;
String command = "curl -X POST " + header + "--data-binary '@"
+ fileName + "' https://api.parse.com/1/files/" + fileName;
System.out.println(command);
Process curlProc;
try {
curlProc = Runtime.getRuntime().exec(command);
DataInputStream curlIn = new DataInputStream(
curlProc.getInputStream());
while ((outputString = curlIn.readLine()) != null) {
System.out.println(outputString);
}
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
}