Взаимодействие JavaScript с Android - попытка загрузить файл в CGI - PullRequest
0 голосов
/ 09 ноября 2011

Хорошо, поэтому позвольте мне предвосхитить это, сказав, что я действительно не уверен в том, что я делаю здесь, и возможно ли это вообще.

Я пытаюсь создать приложение для Android, которое будет взаимодействовать с уже существующим веб-сайтом. На сайте есть поле для поиска файла и кнопка загрузки. При нажатии на кнопку загрузки открывается файл /upload.cgi, который, похоже, выполняет загрузку перед перенаправлением на страницу результатов.

Можно ли использовать базовый javascript для загрузки файла без использования ранее существующего графического интерфейса пользователя, представленного на сайте? Я хотел бы просто использовать свой собственный интерфейс, но взаимодействовать с тем, что есть на сайте.

Спасибо и извинения за неопределенность.

1 Ответ

1 голос
/ 09 ноября 2011

Возможно, вы сможете заставить его работать, используя мост Java / JavaScript для отправки формы за вас (используя WebView).Но я думаю, что это будет больше проблем, чем стоит.И вы должны быть в состоянии сделать это непосредственно в Java, используя сообщение.

Файлы в формах HTML обычно загружаются с использованием тела сообщения, закодированного в виде нескольких частей.Примерно так:

<form enctype="multipart/form-data" action="upload.cgi" method="POST">
   <input type="hidden" name="MAX_FILE_SIZE" value="100000" />
   Choose a file to upload: <input name="uploadedfile" type="file" /><br />
   <input type="submit" value="Upload File" />
</form>

Все, что вам нужно сделать, это создать тот же почтовый запрос, который сгенерирует форма.Вот несколько ссылок, с которых вы можете начать создавать многочастный почтовый запрос на Android.

Как использовать многоэлементную / форму-загрузку данных / изображений на Android

http://w3mentor.com/learn/java/android-development/android-http-services/example-of-multipart-post-using-android/

http://www.17od.com/2010/02/18/multipart-form-upload-on-android/

http://evgenyg.wordpress.com/2010/05/01/uploading-files-multipart-post-apache/

Вот совет отладки, если вы застряли: вы можете установить fiddler в качестве обратного прокси-сервера на CGI-сервере, затем вы можете наблюдать оба запроса (HTML и Java), когда они происходят, чтобы сравнить их на предмет различий.http://www.fiddler2.com/fiddler/help/reverseproxy.asp просто удалите его для производства.

...