Android - Как заполнить данные в форме HTML на внешнем веб-сайте и нажать кнопку загрузки?

У меня есть устройство Android. Я хочу заполнить форму в моем приложении с правками и т. Д. (Одно из этих полей будет содержать путь к изображению на SDCard). Я хочу, чтобы это содержимое формы было данными для формы HTML на внешнем веб-сайте, куда необходимо загрузить этот файл (с SD-карты). HTML-форма имеет кнопку загрузки. Я не хочу показывать эту HTML-страницу пользователям своего приложения для Android. Есть какой-либо способ сделать это? Пожалуйста, дайте мне знать! Спасибо!

РЕДАКТИРОВАТЬ: я просмотрел много веб-сайтов, и я понимаю, что я должен использовать HttpPost. Однако у меня есть несколько сомнений: 1. Какой URL-адрес вы используете в HttpPost? Это URL-адрес, содержащий форму, или URL-адрес, на который перенаправляется форма. 2. В множественности, что является первым параметром в addPart? Это идентификатор, присвоенный полю или имени? 3. Как HttpPost узнает, в какую форму он должен перейти?

1 ответ

Ну, вам нужно сделать MultiPart Http Post. Вы можете использовать этот образец:

HttpClient httpClient = new DefaultHttpClient();
HttpPost postRequest = new HttpPost("target_link");
MultipartEntity reqEntity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
reqEntity.addPart("data1", new StringBody("Data1"));
reqEntity.addPart("data2", new StringBody("Data2"));
reqEntity.addPart("data3",new StringBody("Data3"));
try{
    ByteArrayOutputStream bos = new ByteArrayOutputStream();
    bitmap.compress(CompressFormat.JPEG, 80, bos);
    byte[] data = bos.toByteArray();
    ByteArrayBody bab = new ByteArrayBody(data, "forest.jpg");
    reqEntity.addPart("picture", bab);
}
catch(Exception e){
    //Log.v("Exception in Image", ""+e);
    reqEntity.addPart("picture", new StringBody(""));
}
postRequest.setEntity(reqEntity);       
HttpResponse response = httpClient.execute(postRequest);
BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));
String sResponse;
StringBuilder s = new StringBuilder();
while ((sResponse = reader.readLine()) != null) {
    s = s.append(sResponse);
}

Лично я предпочитаю использовать Spring для Android, так как это проще в настройке. Вот ссылка с несколькими частями Http Post.

Удачи!

Другие вопросы по тегам