gpt4 book ai didi

java - Android HttpClient 发布文件 MultipartEntity

转载 作者:行者123 更新时间:2023-11-29 09:01:29 24 4
gpt4 key购买 nike

我正在尝试使用 HttpClient 和 MultipartEntity 将图像从 Adroid 应用程序上传到 php 网络服务器。

这是我的代码 fragment :

protected Void doInBackground(Void... params) {
HttpClient client = new DefaultHttpClient();
client.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

HttpPost post = new HttpPost( "http://URL/upload.php" );

try {
MultipartEntity entity = new MultipartEntity( );
entity.addPart("type", new StringBody("photo"));
entity.addPart("data", new FileBody(new File (this.path)));
post.setEntity(entity);
post.getParams().setBooleanParameter(CoreProtocolPNames.USE_EXPECT_CONTINUE, false);
post.addHeader( "Content-Type", "multipart/form-data; ");

HttpResponse response = client.execute(post);
HttpEntity resEntity = response.getEntity();

System.out.println(response.getStatusLine());

client.getConnectionManager().shutdown();
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return null;
}

在 php 文件中,我添加了 print_r($_FILE) 来查看数组的内容,它显示的是一个空数组。

LogCat 在执行 HttpClient 后显示如下

06-17 14:54:03.908: I/System.out(1256): HTTP/1.1 200 OK
06-17 14:54:03.998: D/111(1256): Array
06-17 14:54:03.998: D/111(1256): (
06-17 14:54:03.998: D/111(1256): )
06-17 14:54:04.068: D/dalvikvm(1256): GC_CONCURRENT freed 200K, 12% free 2559K/2900K, paused 96ms+5ms, total 161ms

谁能告诉我必须向 Android 代码中添加什么?

最佳答案

根据 blog post about using MultipartEntity to post data to a url ,您可能需要在项目中包含一些额外的 jar 文件。它们包括以下 apache 开源项目:apache-mime4j , httpclient, httpcore and httpmime .

关于java - Android HttpClient 发布文件 MultipartEntity,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17150159/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com