Сервер - не моя часть - но там парень прописал, чтобы в json ответа возвращался запрос - и он пустой
{"success":false,"request”:{[]:””},”msg":"No file was selected"}
Сервер может принять файл в конкретном формате: либо отправляете бинарный (или base64) поток, либо блоками по собственному протоколу (предварительно торгуясь с сервером что за файл, длина итд) , либо (как это делают большинство и это стандартный для веб загрузок через веб форму - в виде
Запроса POST с данными формы (multipart/form-data)
Если ваш запрос не такой какой может принять сервер - устраните несовместимость и в точности реализуйте протокол актуальный для вашего сервера.
Для теста сервера используйте Postman гле сможете сэмулировать любой запрос и посмотреть ответ. Когда все заработает и вы поймете КАК НАДО, сделайте то же самое в вашем приложении.
И логи сервера вам в помощь а не только ответы на запросы, которые не всегда информативны.
Успехов!