Java Android-如何在外部网站上以HTML格式填写数据并点击上传按钮?

Java Android-如何在外部网站上以HTML格式填写数据并点击上传按钮?,java,android,http-post,httpclient,multipartentity,Java,Android,Http Post,Httpclient,Multipartentity,我有一个安卓设备。我想在我的应用程序中填写一张表格,包括编辑文本等(其中一个字段将采用SD卡上图像的路径)。我希望这些表单内容是外部网站中HTML表单的数据,该文件(来自SD卡)需要上传。HTML表单有一个上载按钮。我不想向我的android应用程序用户显示此HTML网页。有没有办法做到这一点?请让我知道!谢谢 编辑:我浏览了很多网站,我知道我应该使用HttpPost。不过,我有一些疑问: 1.您在HttpPost中使用的url是什么?是包含表单的url,还是表单重定向到的url。 2.在Mul

我有一个安卓设备。我想在我的应用程序中填写一张表格,包括编辑文本等(其中一个字段将采用SD卡上图像的路径)。我希望这些表单内容是外部网站中HTML表单的数据,该文件(来自SD卡)需要上传。HTML表单有一个上载按钮。我不想向我的android应用程序用户显示此HTML网页。有没有办法做到这一点?请让我知道!谢谢

编辑:我浏览了很多网站,我知道我应该使用HttpPost。不过,我有一些疑问: 1.您在HttpPost中使用的url是什么?是包含表单的url,还是表单重定向到的url。 2.在Multiparty中,addPart中的第一个参数是什么?是字段的ID还是名称?
3.HttpPost如何知道它应该使用哪种形式?

那么,您需要创建一个多部分的HttpPost。您可以使用以下示例:

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);
}
就我个人而言,我更喜欢在Android上使用Spring,因为它更容易配置。这里有一个Http帖子


祝你好运

谢谢你的回答!我确实试过了,但是命令HttpResponse response=httpClient.execute(postRequest);不执行。我在这个命令前后都放了断点,由于某种原因,httpClient没有执行postRequest,我不明白出了什么问题。这是因为在httpClient.execute(..)之前出现了一个异常。。。你需要跟踪它并解决它。我在那里写的代码是通用的,您需要将其与您的特定业务案例相匹配。但我相信这是你的出发点。好吧,我找到了一个网站,我想在表格中填写一个文本框,然后点击订阅按钮。网站上有它。我在文本框中用字段ID“subscribe-field-2”填写了我的电子邮件地址,然后执行了请求。我收到了HTTP/1.1200 OK,但我没有收到他们的任何电子邮件(这就是它应该做的)。你能告诉我怎么了吗?