返回顶部

收藏

Android HttpClient上传文件(亲测,成功)

更多

Android HttpClient上传文件 的一个封装方法。里面有一小段代码是处理获取JSON格式数据

System.out.println("executing request " + httppost.getRequestLine()); 返回协议和返回码

正确的话是 http 1.1 200

System.out.println(EntityUtils.toString(resEntity,"utf-8"));

获取处理后的页面内容

android并不自带MultipartEntity吧?

对的。把httpmime-4.1.1.jar 这个放进lib中就可以使用 MultipartEntity了

下载地址:http://pan.baidu.com/share/link?shareid=90009&uk=4012369003

public String post(String pathToOurFile,String urlServer) throws ClientProtocolException, IOException, JSONException {
   HttpClient httpclient = new DefaultHttpClient();
   //设置通信协议版本
   httpclient.getParams().setParameter(CoreProtocolPNames.PROTOCOL_VERSION, HttpVersion.HTTP_1_1);

   //File path= Environment.getExternalStorageDirectory(); //取得SD卡的路径

//String pathToOurFile = path.getPath()+File.separator+"ak.txt"; //uploadfile
//String urlServer = "http://192.168.1.88/test/upload.php"; 

   HttpPost httppost = new HttpPost(urlServer);
   File file = new File(pathToOurFile);

   MultipartEntity mpEntity = new MultipartEntity(); //文件传输
   ContentBody cbFile = new FileBody(file);
   mpEntity.addPart("userfile", cbFile); // <input type="file" name="userfile" />  对应的

   httppost.setEntity(mpEntity);
   System.out.println("executing request " + httppost.getRequestLine());

   HttpResponse response = httpclient.execute(httppost);
   HttpEntity resEntity = response.getEntity();

   System.out.println(response.getStatusLine());//通信Ok
   String json="";
   String path="";
   if (resEntity != null) {
     //System.out.println(EntityUtils.toString(resEntity,"utf-8"));
     json=EntityUtils.toString(resEntity,"utf-8");
     JSONObject p=null;
     try{
      p=new JSONObject(json);
      path=(String) p.get("path");
     }catch(Exception e){
      e.printStackTrace();
     }
   }
   if (resEntity != null) {
     resEntity.consumeContent();
   }

   httpclient.getConnectionManager().shutdown();
   return path;
 }
//该片段来自于http://outofmemory.cn

标签:java,手机开发

收藏

0人收藏

支持

0

反对

0

相关聚客文章
  1. 铁木箱子 发表 2011-11-27 14:31:09 WAC启动Android模拟器时出现“transfer error: Read-only file
  2. Ray 发表 2015-05-19 07:55:08 Java操作图数据库Titan
  3. dulong 发表 2018-09-04 12:39:56 原 荐 Spring事务隔离级别详解
  4. bobshi 发表 2014-10-27 05:43:38 IDEA生成自动编译打包ant脚本
  5. darida 发表 2018-09-06 10:03:16 Apache POI 4.0.0 正式发布,不再支持 Java 6 与 7
  6. fyc198610 发表 2014-01-10 03:56:51 mac eclipse svn 文件名乱码
  7. xiaoli.he 发表 2018-09-09 08:46:10 Linux下Tomcat开启查看GC日志
  8. 博主 发表 2015-02-25 15:49:38 Mac安装Android开发环境
  9. Harries 发表 2018-09-11 12:39:58 Java随机数探秘
  10. ChenShan 发表 2015-04-08 16:00:00 install android sdk in macOS
  11. likai 发表 2018-09-13 12:25:58 Spring boot的缓存使用
  12. techug 发表 2015-06-04 04:08:18 Java程序员必须知道的10款免费IDE编辑器

发表评论