AsyncHttpClient(上传图片到服务器)

AsyncHttpClient 是一个框架提供的库 可以异步传输,使用时需下载android-async-http-1.4.4.jar包导入到项目中

下载地址:http://loopj.com/android-async-http

public static void reg(final Context cont,Bitmap photodata,String regData) {  
        try {  
            ByteArrayOutputStream baos = new ByteArrayOutputStream();  

            //将bitmap一字节流输出 Bitmap.CompressFormat.PNG 压缩格式,100:压缩率,baos:字节流  
            photodata.compress(Bitmap.CompressFormat.PNG, 100, baos);  
            baos.close();  
            byte[] buffer = baos.toByteArray();  
            System.out.println("图片的大小:"+buffer.length);  

            //将图片的字节流数据加密成base64字符输出  
            String photo = Base64.encodeToString(buffer, 0, buffer.length,Base64.DEFAULT);  

            //photo=URLEncoder.encode(photo,"UTF-8");  
            RequestParams params = new RequestParams();  
                    params.put("photo", photo);  
                        params.put("name", "woshishishi");//传输的字符数据  
                        String url = "http://10.0.2.2:8080/IC_Server/servlet/RegisterServlet1";  


                        AsyncHttpClient client = new AsyncHttpClient();  
                        client.post(url, params, new AsyncHttpResponseHandler() {  
                        @Override    
                    public void onSuccess(int statusCode, String content){    
                    Toast.makeText(cont, "头像上传成功!"+content, 0)  
                     .show();   
                         }    
                    @Override    
                    public void onFailure(Throwable e, String data){    
                    Toast.makeText(cont, "头像上传失败!", 0)  
                        .show();   
                }  
            });  

        } catch (Exception e) {  
            e.printStackTrace();  
        }  

    }  

你可能感兴趣的:(上传到服务器)