Java-процесс возвращает код завершения 35 только на первой итерации ⇐ JAVA
-
Anonymous
Java-процесс возвращает код завершения 35 только на первой итерации
Я вызываю Curl с помощью Java-процесса, чтобы отправить текст JSON в API. Я вызываю этот код в цикле, и все обновления работают, кроме первого, которое завершается с ошибкой с кодом завершения 35. Я считаю, что код ошибки исходит от Curl и является ошибкой подключения TLS/SSL.
Это суть метода, который вызывается неоднократно. Опять же, только первое обновление завершается неудачно, все последующие обновления выполняются успешно. Может быть, есть какие-то накладные расходы при создании исходного файла или ProcessBuilder, который затем используется для последующих вызовов?
File f = new File("c:\\temp\\json.txt"); String str = "{\"batch_fields\":{\"Номер пакета\":\""+num+"\"}}"; попробуйте (BufferedWriter Writer = новый BufferedWriter (новый FileWriter (f))) { писатель.писать (стр); } StringBuilder sb = новый StringBuilder(); Команда StringBuilder = new StringBuilder("c:\\Program Files\\curl\\bin\\curl -H \"X-Token: "+BatchUtils.API_TOKEN_READ_WRITE+"\""); Command.append(" -X PUT -H \"Тип контента: application/json\" "); Command.append(" -d \"@c:\\temp\\json.txt\" "); Command.append("https://blah/blah/batches/"+batchId+"\""); ProcessBuilderprocessBuilder = новый ProcessBuilder(command.toString().split(" ")); Процесс процесса = процессBuilder.start(); Входной поток = процесс.getInputStream(); if(is == null || is.read() == -1) { is =process.getErrorStream(); sb.append(" Не удалось обновитьBatchNumber: " + is.toString()); } еще sb.append("Обновленный номер пакета"; int exitCode =process.waitFor(); sb.append(". Код выхода: " + exitCode); процесс.уничтожить();
Я вызываю Curl с помощью Java-процесса, чтобы отправить текст JSON в API. Я вызываю этот код в цикле, и все обновления работают, кроме первого, которое завершается с ошибкой с кодом завершения 35. Я считаю, что код ошибки исходит от Curl и является ошибкой подключения TLS/SSL.
Это суть метода, который вызывается неоднократно. Опять же, только первое обновление завершается неудачно, все последующие обновления выполняются успешно. Может быть, есть какие-то накладные расходы при создании исходного файла или ProcessBuilder, который затем используется для последующих вызовов?
File f = new File("c:\\temp\\json.txt"); String str = "{\"batch_fields\":{\"Номер пакета\":\""+num+"\"}}"; попробуйте (BufferedWriter Writer = новый BufferedWriter (новый FileWriter (f))) { писатель.писать (стр); } StringBuilder sb = новый StringBuilder(); Команда StringBuilder = new StringBuilder("c:\\Program Files\\curl\\bin\\curl -H \"X-Token: "+BatchUtils.API_TOKEN_READ_WRITE+"\""); Command.append(" -X PUT -H \"Тип контента: application/json\" "); Command.append(" -d \"@c:\\temp\\json.txt\" "); Command.append("https://blah/blah/batches/"+batchId+"\""); ProcessBuilderprocessBuilder = новый ProcessBuilder(command.toString().split(" ")); Процесс процесса = процессBuilder.start(); Входной поток = процесс.getInputStream(); if(is == null || is.read() == -1) { is =process.getErrorStream(); sb.append(" Не удалось обновитьBatchNumber: " + is.toString()); } еще sb.append("Обновленный номер пакета"; int exitCode =process.waitFor(); sb.append(". Код выхода: " + exitCode); процесс.уничтожить();
Мобильная версия