import java.io.BufferedReader;  04.import java.io.DataOutputStream;  05.import java.io.File;  06.import java.io.FileInputStream;  07.import java.io.InputStream;  08.import java.io.InputStreamReader;  09.import java.net.HttpURLConnection;  10.import java.net.URL;  11.import java.util.Map;  12.import java.util.Random;  13.import java.util.concurrent.TimeUnit;  14.  15.import org.apache.http.client.HttpClient;  16.import org.apache.http.impl.client.DefaultHttpClient;  17.  18.import com.bingo.BingoApp;  19.public class Communication {  20.      21.      22.    /** 23.     * @param 只发送普通数据,调用此方法 24.     * @param urlString 对应的Php 页面 25.     * @param params 需要发送的相关数据 包括调用的方法 26.     * @return 27.     */  28.    public String communication(String urlString,Map<String, String> params){  29.          30.        HttpClient client = new DefaultHttpClient();  31.          32.          33.          34.        client.getConnectionManager().closeIdleConnections(20, TimeUnit.SECONDS);//20秒   35.          36.        String result="";  37.          38.        String uploadUrl=new BingoApp().URLIN+"/";//new BingoApp().URLIN 是我定义的上传URL   39.        //http://192.168.10.9/bingo/Server/code   40.        String MULTIPART_FORM_DATA = "multipart/form-data";   41.        String BOUNDARY = "---------7d4a6d158c9"; //数据分隔线   42.          43.        if (!urlString.equals("")) {  44.            uploadUrl = uploadUrl+urlString;  45.          46.          47.        try {  48.            URL url = new URL(uploadUrl);    49.            HttpURLConnection conn = (HttpURLConnection) url.openConnection();    50.            conn.setDoInput(true);//允许输入     51.            conn.setDoOutput(true);//允许输出     52.            conn.setUseCaches(false);//不使用Cache     53.            conn.setConnectTimeout(6000);// 6秒钟连接超时   54.            conn.setReadTimeout(25000);// 25秒钟读数据超时   55.            conn.setRequestMethod("POST");              56.            conn.setRequestProperty("Connection", "Keep-Alive");    57.            conn.setRequestProperty("Charset", "UTF-8");    58.            conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);  59.              60.            61.            StringBuilder sb = new StringBuilder();    62.                63.            //上传的表单参数部分,格式请参考文章     64.            for (Map.Entry<String, String> entry : params.entrySet()) {//构建表单字段内容     65.                sb.append("--");    66.                sb.append(BOUNDARY);    67.                sb.append("\r\n");    68.                sb.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");    69.                sb.append(entry.getValue());    70.                sb.append("\r\n");    71.            }    72.  73.              74.            DataOutputStream dos = new DataOutputStream(conn.getOutputStream());  75.            dos.write(sb.toString().getBytes());  76.            dos.writeBytes("--" + BOUNDARY + "--\r\n");  77.              dos.flush();  78.  79.              InputStream is = conn.getInputStream();  80.              InputStreamReader isr = new InputStreamReader(is, "utf-8");  81.              BufferedReader br = new BufferedReader(isr);  82.              result = br.readLine();  83.             84.                85.        }catch (Exception e) {  86.            result = "{\"ret\":\"898\"}";  87.        }  88.    }  89.        return result;  90.          91.    }  92.      93.    /** 94.     * @param 只发送普通数据,调用此方法 95.     * @param urlString 对应的Php 页面  96.     * @param params 需要发送的相关数据 包括调用的方法 97.     * @paramimage 图片字节数组或者文件字节数组 98.     * @paramimg 图片名称 99.     * @return  Json  100.     */  101.    public String communication01(String urlString,Map<String, Object> params,byte[] image ,String img){  102.        String result="";  103.          104.        String end = "\r\n";          105.        String uploadUrl=new BingoApp().URLIN+"/";//new BingoApp().URLIN 是我定义的上传URL   106.        String MULTIPART_FORM_DATA = "multipart/form-data";   107.        String BOUNDARY = "---------7d4a6d158c9"; //数据分隔线   108.        String imguri ="";  109.        Random random = new Random();  110.        int temp = random.nextInt();  111.        imguri = temp+ "sdfse"+".jpg";  112.        if (!urlString.equals("")) {  113.            uploadUrl = uploadUrl+urlString;  114.          115.        try {  116.            URL url = new URL(uploadUrl);    117.            HttpURLConnection conn = (HttpURLConnection) url.openConnection();    118.            conn.setDoInput(true);//允许输入     119.            conn.setDoOutput(true);//允许输出     120.            conn.setUseCaches(false);//不使用Cache     121.            conn.setConnectTimeout(6000);// 6秒钟连接超时   122.            conn.setReadTimeout(6000);// 6秒钟读数据超时   123.            conn.setRequestMethod("POST");              124.            conn.setRequestProperty("Connection", "Keep-Alive");    125.            conn.setRequestProperty("Charset", "UTF-8");    126.            conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);  127.              128.            StringBuilder sb = new StringBuilder();    129.                130.            //上传的表单参数部分,格式请参考文章     131.            for (Map.Entry<String, Object> entry : params.entrySet()) {//构建表单字段内容     132.                sb.append("--");    133.                sb.append(BOUNDARY);    134.                sb.append("\r\n");    135.                sb.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");    136.                sb.append(entry.getValue());    137.                sb.append("\r\n");    138.            }    139.  140.            sb.append("--");    141.            sb.append(BOUNDARY);    142.            sb.append("\r\n");    143.  144.            DataOutputStream dos = new DataOutputStream(conn.getOutputStream());  145.            dos.write(sb.toString().getBytes());  146.              147.            if (!imguri.equals("")&&!imguri.equals(null)) {  148.                 dos.writeBytes("Content-Disposition: form-data; name=\""+img+"\"; filename=\"" + imguri + "\"" + "\r\n"+"Content-Type: image/jpeg\r\n\r\n");  149.                   150.                 dos.write(image,0,image.length);  151.                  152.                  dos.writeBytes(end);  153.                   154.              155.                dos.writeBytes("--" + BOUNDARY + "--\r\n");  156.              dos.flush();  157.  158.              InputStream is = conn.getInputStream();  159.              InputStreamReader isr = new InputStreamReader(is, "utf-8");  160.              BufferedReader br = new BufferedReader(isr);  161.              result = br.readLine();  162.           }   163.        }catch (Exception e) {  164.            result = "{\"ret\":\"898\"}";  165.        }  166.    }  167.        return result;  168.          169.    }  170.      171.      172.    /** 173.     * @param 只发送普通数据,调用此方法 174.     * @param urlString 对应的Php 页面 175.     * @param params 需要发送的相关数据 包括调用的方法 176.     * @param imageuri 图片或文件手机上的地址 如:sdcard/photo/123.jpg 177.     * @param img 图片名称 178.     * @return Json 179.     */  180.    public String communication02(String urlString,Map<String, Object> params,String  imageuri ,String img){  181.        String result="";  182.          183.        String end = "\r\n";          184.        String uploadUrl=new BingoApp().URLIN+"/";//new BingoApp().URLIN 是我定义的上传URL   185.        String MULTIPART_FORM_DATA = "multipart/form-data";   186.        String BOUNDARY = "---------7d4a6d158c9"; //数据分隔线   187.        String imguri ="";  188.        if (!imageuri.equals("")) {  189.            imguri = imageuri.substring(imageuri.lastIndexOf("/") + 1);//获得图片或文件名称   190.        }  191.          192.          193.          194.          195.        if (!urlString.equals("")) {  196.            uploadUrl = uploadUrl+urlString;  197.          198.          199.        try {  200.            URL url = new URL(uploadUrl);    201.            HttpURLConnection conn = (HttpURLConnection) url.openConnection();    202.            conn.setDoInput(true);//允许输入     203.            conn.setDoOutput(true);//允许输出     204.            conn.setUseCaches(false);//不使用Cache     205.            conn.setConnectTimeout(6000);// 6秒钟连接超时   206.            conn.setReadTimeout(6000);// 6秒钟读数据超时   207.            conn.setRequestMethod("POST");              208.            conn.setRequestProperty("Connection", "Keep-Alive");    209.            conn.setRequestProperty("Charset", "UTF-8");    210.            conn.setRequestProperty("Content-Type", MULTIPART_FORM_DATA + "; boundary=" + BOUNDARY);  211.              212.            StringBuilder sb = new StringBuilder();    213.                214.            //上传的表单参数部分,格式请参考文章     215.            for (Map.Entry<String, Object> entry : params.entrySet()) {//构建表单字段内容     216.                sb.append("--");    217.                sb.append(BOUNDARY);    218.                sb.append("\r\n");    219.                sb.append("Content-Disposition: form-data; name=\""+ entry.getKey() + "\"\r\n\r\n");    220.                sb.append(entry.getValue());    221.                sb.append("\r\n");    222.            }    223.  224.            sb.append("--");    225.            sb.append(BOUNDARY);    226.            sb.append("\r\n");    227.  228.            DataOutputStream dos = new DataOutputStream(conn.getOutputStream());  229.            dos.write(sb.toString().getBytes());  230.              231.            if (!imageuri.equals("")&&!imageuri.equals(null)) {  232.                 dos.writeBytes("Content-Disposition: form-data; name=\""+img+"\"; filename=\"" + imguri + "\"" + "\r\n"+"Content-Type: image/jpeg\r\n\r\n");  233.                  FileInputStream fis = new FileInputStream(imageuri);  234.                  byte[] buffer = new byte[1024]; // 8k   235.                  int count = 0;  236.                  while ((count = fis.read(buffer)) != -1)  237.                  {  238.                    dos.write(buffer, 0, count);  239.                  }  240.                  dos.writeBytes(end);  241.                  fis.close();  242.            }  243.                dos.writeBytes("--" + BOUNDARY + "--\r\n");  244.              dos.flush();  245.  246.              InputStream is = conn.getInputStream();  247.              InputStreamReader isr = new InputStreamReader(is, "utf-8");  248.              BufferedReader br = new BufferedReader(isr);  249.              result = br.readLine();  250.              251.        }catch (Exception e) {  252.            result = "{\"ret\":\"898\"}";  253.        }  254.    }  255.        return result;  256.          257.    }  258.      259.      260.}  

更多相关文章

  1. Android中XML格式数据的简单使用
  2. android实现上传
  3. android 上传/下载 图片
  4. Android使用Retrofit上传单个文件以及多个文件
  5. Android拍照上传代码样例
  6. android 通过ContentResolver获得联系人数据
  7. android实现ftp上传、下载,支持文件夹
  8. Android Afinal框架学习(一) FinalDb 数据库操作

随机推荐

  1. Android(安卓)Dialog无法去除遮罩
  2. Android取消EditText自动获取焦点默认行
  3. androdi ImageView.ScaleType
  4. Android(安卓)TextView 设置中划线 下划
  5. Android横竖屏限制切换
  6. Android动画效果
  7. android程序获取WIFI的IP地址和MAC地址
  8. 一网打尽Android-UI系列教程
  9. 安卓巴士Android开发神贴整理
  10. pandaboard ES学习之旅——5 Android(安