Android 通过httppost上传文本文件到服务器的实例代码

废话不多说了,直接给大家贴关键代码了。

/** * 往服务器上上传文本 比如log日志 * @param urlstr 请求的url * @param uploadFile log日志的路径 * /mnt/shell/emulated/0/LOG/LOG.log * @param newName log日志的名字 LOG.log * @return */ public static void httpPost(Activity activity,String urlstr,String uploadFile,String newName) { LogUtil.info("getEhttpPostt", "urlstr="+urlstr+";uploadFile="+uploadFile+";newName="+newName,"i"); String end = "\r\n"; String twoHyphens = "--"; String boundary = "*****";//边界标识 int TIME_OUT = 10*1000; //超时时间 HttpURLConnection con = null; DataOutputStream ds = null; InputStream is = null; try { URL url = new URL(urlstr); con = (HttpURLConnection) url.openConnection(); con.setReadTimeout(TIME_OUT); con.setConnectTimeout(TIME_OUT); /* 允许Input、Output,不使用Cache */ con.setDoInput(true); con.setDoOutput(true); con.setUseCaches(false); // 设置http连接属性 con.setRequestMethod("POST");//请求方式 con.setRequestProperty("Connection", "Keep-Alive");//在一次TCP连接中可以持续发送多份数据而不会断开连接 con.setRequestProperty("Charset", "UTF-8");//设置编码 con.setRequestProperty("Content-Type",//multipart/form-data能上传文件的编码格式 "multipart/form-data;boundary=" + boundary); ds = new DataOutputStream(con.getOutputStream()); ds.writeBytes(twoHyphens + boundary + end); ds.writeBytes("Content-Disposition: form-data; " + "name=\"stblog\";filename=\"" + newName + "\"" + end); ds.writeBytes(end); // 取得文件的FileInputStream FileInputStream fStream = new FileInputStream(uploadFile); /* 设置每次写入1024bytes */ int bufferSize = 1024; byte[] buffer = new byte[bufferSize]; int length = -1; /* 从文件读取数据至缓冲区 */ while ((length = fStream.read(buffer)) != -1) { /* 将资料写入DataOutputStream中 */ ds.write(buffer, 0, length); } ds.writeBytes(end); ds.writeBytes(twoHyphens + boundary + twoHyphens + end);//结束 fStream.close(); ds.flush(); /* 取得Response内容 */ is = con.getInputStream(); int ch; StringBuffer b = new StringBuffer(); while ((ch = is.read()) != -1) { b.append((char) ch); } /* 将Response显示于Dialog */ showDialog(activity,true,uploadFile,"上传成功" + b.toString().trim()); } catch (Exception e) { showDialog(activity,false,uploadFile,"上传失败" + e); }finally { /* 关闭DataOutputStream */ if(ds!=null){ try { ds.close(); } catch (IOException e) { e.printStackTrace(); } } if (is != null) { try { is.close(); } catch (IOException e) { e.printStackTrace(); } } if (con != null) { con.disconnect(); } } } /* 显示Dialog的method */ private static void showDialog(final Activity activity,final Boolean isSuccess,final String uploadFile,final String mess) { activity.runOnUiThread(new Runnable() { @Override public void run() { new AlertDialog.Builder(activity).setTitle("Message") .setMessage(mess) .setNegativeButton("确定", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { File file = new File(uploadFile); if(file.exists()&&isSuccess){//日志文件存在且上传日志成功 file.delete(); Toast.makeText(activity, "log日志已删除", Toast.LENGTH_SHORT).show(); } } }).show(); } }); }

以上内容是小编给大家介绍的Android 通过httppost上传文本文件到服务器的实例代码,代码简单易懂,附有注释,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对脚本之家网站的支持!

时间: 2024-10-14 17:51:56

Android 通过httppost上传文本文件到服务器的实例代码的相关文章

Android 通过httppost上传文本文件到服务器的实例代码_Android

废话不多说了,直接给大家贴关键代码了. /** * 往服务器上上传文本 比如log日志 * @param urlstr 请求的url * @param uploadFile log日志的路径 * /mnt/shell/emulated/0/LOG/LOG.log * @param newName log日志的名字 LOG.log * @return */ public static void httpPost(Activity activity,String urlstr,String uplo

Android将图片上传到php服务器的实例代码

layout中很普通,就是两个button和一个ImageView <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height=&q

post请求-Android post方式上传数据给服务器

问题描述 Android post方式上传数据给服务器 做了一个小例子.Tomcat服务器发布Server.然后在Android手机上用httpurlconnection连接服务器.用post方式上传数据.有个问题很怪.在公司测试的时候没有任何问题.但是到家里运行,链接返回的状态码一直是404.在公司和家里的区别就是公司是局域网IP,在家里我是用的无线路由器自动分配的IP.地址192.168.1.100.我用手机浏览器都能访问到tomcat网站.但是就是post不了数据.各位大侠谁了解,指点一下

Java实现FTP文件的上传和下载功能的实例代码_java

FTP 是File Transfer Protocol(文件传输协议)的英文简称,而中文简称为"文传协议".用于Internet上的控制文件的双向传输.同时,它也是一个应用程序(Application).基于不同的操作系统有不同的FTP应用程序,而所有这些应用程序都遵守同一种协议以传输文件.在FTP的使用当中,用户经常遇到两个概念:"下载"(Download)和"上传"(Upload)."下载"文件就是从远程主机拷贝文件至自己

BootStrap Progressbar 实现大文件上传的进度条的实例代码_javascript技巧

1.首先实现大文件上传,如果是几兆或者几十兆的文件就用基本的上传方式就可以了,但是如果是大文件上传的话最好是用分片上传的方式.我这里主要是使用在客户端进行分片读取到服务器段,然后保存,到了服务器段读取完了之后将分片数据进行组合. 2.前端代码如下: <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="UploadTest2.aspx.cs" Inherits="Htm

input file上传 图片预览功能实例代码_javascript技巧

input file上传图片预览其实很简单,只是没做过的感觉很神奇,今天我就扒下她神秘的面纱,其实原理真的很简单,下面通过一段代码大家都明白了. 具体代码如下所示: <!DOCTYPE html> <html> <head> <meta charset="utf-8" /> <title></title> <script src="jquery.js"></script>

iOS上传语音到服务器的实例

iOS上传语音到服务器,这里介绍用AFN上传语音文件到服务端. 语音转NSData 如果不是NSData就要想办法把语音文件转化为NSData,然后才能上传服务器.首先我们拿到语音文件对应的NSData对象 NSData *voiceData = [message valueForKey:@"wavAudioData"];  上传代码    代码如下 复制代码 //kHostURL为开发者公司的APP对应的主域名,比如http://xxx.yyy.cn AFHTTPRequestOpe

Android OkHttp Post上传文件并且携带参数实例详解

Android OkHttp Post上传文件并且携带参数 这里整理一下 OkHttp 的 post 在上传文件的同时,也要携带请求参数的方法. 使用 OkHttp 版本如下: compile 'com.squareup.okhttp3:okhttp:3.4.1' 代码如下: protected void post_file(final String url, final Map<String, Object> map, File file) { OkHttpClient client = n

C#实现Web文件上传的两种方法实例代码

在Web编程中,我们常需要把一些本地文件上传到Web服务器上,上传后,用户可以通过浏览器方便地浏览这些文件,应用十分广泛.   1. C#实现Web文件的上传 使用C#如何实现文件上传的功能呢?下面笔者简要介绍一下. 首先,在你的Visual C# web project 中增加一个上传用的Web Form,为了要上传文件,需要在ToolBox中选择HTML类的File Field控件,将此控件加入到Web Form中,然而此时该控件还不是服务端控件,我们需要为它加上如下一段代码:<input