热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

AysnTask+HttpClient实现上传

packagecom.example.uptoserverdemo;importjava.io.File;importjava.io.IOException;importorg.ap

package com.example.uptoserverdemo;

import java.io.File; import java.io.IOException;

import org.apache.http.HttpEntity; import org.apache.http.HttpResponse; import org.apache.http.HttpStatus; import org.apache.http.client.*; import org.apache.http.client.methods.HttpPost; import org.apache.http.entity.FileEntity; import org.apache.http.impl.client.DefaultHttpClient; import org.apache.http.util.EntityUtils;

import com.lidroid.xutils.ViewUtils; import com.lidroid.xutils.view.annotation.event.OnClick;

import android.os.AsyncTask; import android.os.Bundle; import android.app.Activity; import android.util.Log; import android.view.Menu; import android.view.View; import android.widget.TextView;

public class MainActivity extends Activity {  private TextView tv;  public static final String UP_URL = "http://169.254.109.73:8080/upserver/UploadFileServlet"; // private String filePath = "/storage/sdcard0/1461656337024acedownload.mp4"; // String fileName = "1461656337024acedownload.mp4";  private String filePath = "/mnt/sdcard/ace.mp4";  String fileName = "ace.mp4";      @Override  protected void onCreate(Bundle savedInstanceState) {   super.onCreate(savedInstanceState);   setContentView(R.layout.activity_main);   tv = (TextView) findViewById(R.id.tv);         ViewUtils.inject(this);  }    @OnClick(R.id.tv)  public void jump(View view){   //异步上传文件   new MyAsyncTask().execute();  }    class MyAsyncTask extends AsyncTask{

  @Override   protected String doInBackground(String... params) {    String rs = "";    String httpUrl = UP_URL+"?fileName="+fileName;            HttpPost request = new HttpPost(httpUrl);             File file = new File(filePath);          //上传文件的配置代码          FileEntity entity = new FileEntity(file,"binary/octet-stream");           entity.setContentEncoding("binary/octet-stream");           request.setEntity(entity);                   HttpClient httpClient = new DefaultHttpClient();           HttpResponse response;               try {      respOnse= httpClient.execute(request);      //如果返回状态为200,获得返回的结果       if(response.getStatusLine().getStatusCode()==HttpStatus.SC_OK){          //图片上传成功           Log.i("TAG","上传成功");       HttpEntity rsEntity = response.getEntity();       rs = EntityUtils.toString(rsEntity, "utf-8");       Log.i("TAG",rs);      }      } catch (ClientProtocolException e) {      // TODO Auto-generated catch block      e.printStackTrace();     } catch (IOException e) {      // TODO Auto-generated catch block      e.printStackTrace();     }               return rs;            }       @Override   protected void onPostExecute(String result) {    // TODO Auto-generated method stub    super.onPostExecute(result);    tv.setText(result);   }  }

 @Override  public boolean onCreateOptionsMenu(Menu menu) {   // Inflate the menu; this adds items to the action bar if it is present.   getMenuInflater().inflate(R.menu.activity_main, menu);   return true;  }

}


推荐阅读
  • Android LED 数字字体的应用与实现
    本文介绍了一种适用于 Android 应用的 LED 数字字体(digital font),并详细描述了其在 UI 设计中的应用场景及其实现方法。这种字体常用于视频、广告倒计时等场景,能够增强视觉效果。 ... [详细]
  • 本文介绍了Java并发库中的阻塞队列(BlockingQueue)及其典型应用场景。通过具体实例,展示了如何利用LinkedBlockingQueue实现线程间高效、安全的数据传递,并结合线程池和原子类优化性能。 ... [详细]
  • 将Web服务部署到Tomcat
    本文介绍了如何在JDeveloper 12c中创建一个Java项目,并将其打包为Web服务,然后部署到Tomcat服务器。内容涵盖从项目创建、编写Web服务代码、配置相关XML文件到最终的本地部署和验证。 ... [详细]
  • 使用Python在SAE上开发新浪微博应用的初步探索
    最近重新审视了新浪云平台(SAE)提供的服务,发现其已支持Python开发。本文将详细介绍如何利用Django框架构建一个简单的新浪微博应用,并分享开发过程中的关键步骤。 ... [详细]
  • 本文探讨了在Java多线程环境下,如何确保具有相同key值的线程能够互斥执行并按顺序输出结果。通过优化代码结构和使用线程安全的数据结构,我们解决了线程同步问题,并实现了预期的并发行为。 ... [详细]
  • 本文介绍了Android开发中Intent的基本概念及其在不同Activity之间的数据传递方式,详细展示了如何通过Intent实现Activity间的跳转和数据传输。 ... [详细]
  • UWP 使用Windows.Web.Http命名空间下的HttpClient使用post方法,上传图片服务器
    1.从相册里面选取图片1<summary>21.1从相册里面选取图片3<summary> ... [详细]
  • 本文详细介绍了 Flink 和 YARN 的交互机制。YARN 是 Hadoop 生态系统中的资源管理组件,类似于 Spark on YARN 的配置方式。我们将基于官方文档,深入探讨如何在 YARN 上部署和运行 Flink 任务。 ... [详细]
  • 开发笔记:9.八大排序
    开发笔记:9.八大排序 ... [详细]
  • 深入解析Java虚拟机(JVM)架构与原理
    本文旨在为读者提供对Java虚拟机(JVM)的全面理解,涵盖其主要组成部分、工作原理及其在不同平台上的实现。通过详细探讨JVM的结构和内部机制,帮助开发者更好地掌握Java编程的核心技术。 ... [详细]
  • 超文本传输协议HTTP也许是当今互联网上使用的最重要的协议了。尽管java.net包提供了基本通过HTTP访问资源的功能,但它没有提供全面的灵活性和其它很多应用程序需要的功能。HttpClient就 ... [详细]
  • HttpClient作为官方推荐的http客户端,相比之前的WebClient和WebRequest好用了很多,但默认无法为每个请求单独设置超时,只能给HttpClient设置默认 ... [详细]
  • 本篇文章给大家分享的是有关如何正确的使用HttpClient方法,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不 ... [详细]
  • 最近手上在进行一个性能测试项目,脚本是java语言使用httpClient实现http请求。并发用户数线程只有40个,但是服务器端启动的线程出现了400多个,是哪里平白无故出现这么多线程呢?肯定是有问 ... [详细]
  • 在Java领域,谈到网络编程,可能大家脑海里第一反应就是MINA,NETTY,GRIZZLY等优秀的开源框架。没错,不过在深入探究这些框架之前,我们需要先从最original的技 ... [详细]
author-avatar
山寨西域刀羊_281
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有