Можно ли отправить файл вдоль JSONObject в POST Curl? - PullRequest
0 голосов
/ 08 апреля 2020

Я должен начать с того, что я новичок в Curl / backend / server. У меня есть локальный сервер, работающий в приложении android. Пока устройство подключено к моей машине через кабель, я могу POST к этому серверу, используя Curl. Мне нужно отправить файл .vcf вместе с некоторыми аргументами в Curl POST. Это возможно? Пока я только отправляю файлы. Это POST, который у меня есть:

curl  -X POST  -i  -F parametername=@/Users/mymachine/Desktop/file.vcf localhost:5000

, и вот как я получаю его на сервере, который работает в моем приложении android:

             val inputStream = exchange.requestBody

            try {
                val inputAsString = inputStream.bufferedReader().use { it.readText() }
                Timber.d("Received a POST $inputAsString")

            } catch (e: Exception) {
                Timber.e("Error while attempting to parse server response ${e.message}")
            }

Я создал локальный сервер следующий пример: https://medium.com/hacktive-devs/creating-a-local-http-server-on-android-49831fbad9ca

Возможно ли обернуть файл, который я отправляю, в JSONObject и добавить дополнительные поля? Что-то вроде этого - то, что я ищу:

curl  -X POST  -i  -F {"vcf_file":"parametername=@/Users/mymachine/Desktop/file.vcf", "name":"Jhon", "surname":"Doe"} localhost:5000

Если невозможно обернуть все в JSONObject ... что было бы лучше всего? Заранее спасибо!

Ответы [ 2 ]

0 голосов
/ 08 апреля 2020

Я провел дополнительное расследование и нашел ответ здесь

отправка / публикация xml файла с использованием командной строки curl

Моя запись Curl теперь выглядит следующим образом :

curl -X POST --form details='{"bar_test":"bar", "foo": "bar"}' --form  parametername=@/Users/myusername/Desktop/test.vcf  localhost:5000
0 голосов
/ 08 апреля 2020

Да, я думаю, что если вы разместили свои api / файлы, вы можете легко получить их URL и поместить их в json. Но если вы хотите сделать загрузку, например, вы должны сделать многочастный запрос. Модернизация, безусловно, очень поможет вам, вот несколько ссылок:

https://square.github.io/retrofit/

https://futurestud.io/tutorials/retrofit-2-adding-customizing-the-gson-converter

https://futurestud.io/tutorials/retrofit-2-how-to-upload-files-to-server

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...