SSM + Android 网络交互的那些事

  2016年12月14日 17:58:36

ssm做为后台与android交互,相信只要是了解过的人都知道一些基本的数据交互,向json,对象,map的交互就像喝水一样简单,这些基本的交互也是学习ssm后台开发的基本,但是好多人却是会忽略文件的交互。毕竟大多数培训老师是没有讲这些东西的(至少小编我的启蒙老师就没有介绍过)。好了废话不多说,直接上!!!!!!!!

在这里我用的是okHttp网络请求框架:https://github.com/square/okhttp(官方的开源库)

①ssm服务端的做法步骤:

1. 在 spring-servlet.xml 配置文件中加入下面的代码,用以通知spring加载文件上传处理器:

<!-- 定义文件上传处理器 -->
 <bean id="multipartResolver"
  class="org.springframework.web.multipart.commons.CommonsMultipartResolver"
  p:defaultEncoding="UTF-8" />

2.ssm 控制器编写的映射关系:

@RequestMapping(value="user/postFile.action",method = RequestMethod.POST)
    @ResponseBody
    public String postFile(@RequestParam("file") MultipartFile file){

String name = file.getContentType();
        System.out.println(name);
//        if(file.isEmpty()){
//        
//            System.out.println("fial");
//            //return "successful";
//        }else{
//            System.out.println("successful");
//            //return "fail";
//        }

return null;

3,记得加一个依赖库,commons-fileupload.jar 。如果用的是maven管理的话在pom.xml中加入下面依赖就好!

<!-- https://mvnrepository.com/artifact/commons-fileupload/commons-fileupload -->
<dependency>
    <groupId>commons-fileupload</groupId>
    <artifactId>commons-fileupload</artifactId>
    <version>1.3.2</version>
</dependency>

②android 通过okhttp上传文件(multipart form/data)

public Request postFile(String url,File file){

    RequestBody fileBody = RequestBody.create(MediaType.parse("image/jpg"), file);

    MultipartBody.Builder builder = new MultipartBody.Builder();
builder.setType(MultipartBody.FORM)
.addFormDataPart("file","welcome_crop.jpg",fileBody);
RequestBody requestBody = builder.build(); Request request = new Request.Builder().url(url)
.post(requestBody)
.build();
return request;
}
public void execute(final Request request, BaseCallBack callBack){

    if(callBack == null){
callBack = BaseCallBack.CALLBACK_DEFAULT;
}
final BaseCallBack finalCallBack = callBack; client.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
sendFailedResult(call,e,finalCallBack);
} @Override
public void onResponse(Call call, Response response) throws IOException {
if (call.isCanceled()){
sendFailedResult(call,new Exception("response is canceled"),finalCallBack);
return;
}
Log.d(TAG,""+response.code());
if (!finalCallBack.validateResponse(response)){
sendFailedResult(call,new Exception("response is failed"+response.code()),finalCallBack);
return;
}
try {
Object object = finalCallBack.parseResponse(response);
sendSuccessResult(object,finalCallBack);
}catch (Exception e){
e.printStackTrace();
}finally {
if(response.body()!=null){
response.close();
}
}
}
});
}
调用
Request fileRequest = OkHttpUtils.getInstance().postFile(url,file);
OkHttpUtils.getInstance().execute(fileRequest, new MyStringCallBack());

https://github.com/ggyuer/ssmAndandroid(Android 端okhttp请求,服务端用自己的)

}

版权声明:本文为博主原创文章,未经博主允许不得转载。

SSM + Android 网络文件上传下载的更多相关文章

  1. Android okHttp网络请求之文件上传下载

    前言: 前面介绍了基于okHttp的get.post基本使用(http://www.cnblogs.com/whoislcj/p/5526431.html),今天来实现一下基于okHttp的文件上传. ...

  2. Android OkHttp文件上传与下载的进度监听扩展

    http://www.loongwind.com/archives/290.html 上一篇文章介绍了用Retrofit实现文件的上传与下载,但是我们发现没办法监听上传下载的进度,毕竟我们在做开发的时 ...

  3. springmvc文件上传下载简单实现案例(ssm框架使用)

    springmvc文件上传下载实现起来非常简单,此springmvc上传下载案例适合已经搭建好的ssm框架(spring+springmvc+mybatis)使用,ssm框架项目的搭建我相信你们已经搭 ...

  4. ssm文件上传下载比较详细的案例

    背景:ssm框架 接下来,我会介绍单文件上传,下载,多文件的上传,下载,使用ajax进行文件的上传下载,和普通的表单提交的文件上传下载. 只要做项目,总是少不了文件的操作,好了废话不多说,直接上代码! ...

  5. SSM简单实现文件上传和下载

    一.配置spring-mvc <!-- 配置多媒体文件解析器 --> <bean id="multipartResolver" class="org.s ...

  6. 艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输)(一)

    艺萌TCP文件上传下载及自动更新系统介绍(TCP文件传输) 该系统基于开源的networkComms通讯框架,此通讯框架以前是收费的,目前已经免费并开元,作者是英国的,开发时间5年多,框架很稳定. 项 ...

  7. 2013第38周日Java文件上传下载收集思考

    2013第38周日Java文件上传&下载收集思考 感觉文件上传及下载操作很常用,之前简单搜集过一些东西,没有及时学习总结,现在基本没啥印象了,今天就再次学习下,记录下自己目前知识背景下对该类问 ...

  8. 转:【专题十一】实现一个基于FTP协议的程序——文件上传下载器

    引言: 在这个专题将为大家揭开下FTP这个协议的面纱,其实学习知识和生活中的例子都是很相通的,就拿这个专题来说,要了解FTP协议然后根据FTP协议实现一个文件下载器,就和和追MM是差不多的过程的,相信 ...

  9. Java实现FTP批量大文件上传下载篇1

    本文介绍了在Java中,如何使用Java现有的可用的库来编写FTP客户端代码,并开发成Applet控件,做成基于Web的批量.大文件的上传下载控件.文章在比较了一系列FTP客户库的基础上,就其中一个比 ...

随机推荐

  1. markdown自动生成侧边栏TOC /目录

    http://blog.csdn.net/haleypku/article/details/51226704 此文可以只了解一下概念: http://i5ting.github.io/i5ting_z ...

  2. 微信小程序之内嵌网页(webview)

    设置权限 要在小程序中访问外部网页,需要先设置允许访问的业务网站的域名.让我们先登录小程序平台管理后台页面,进入“设置” => "开发设置",可以看到这边多出来了一块“业务域 ...

  3. list补充,append()、extend()、insert()、remove()、del()、pop()、分片

    1.添加 append(object),是指在列表的末尾添加一个元素. >>> arr = [1,2,'a','你好',[11,22,33]] >>> arr [1 ...

  4. C#如何操作XML文件

    ⒈XML? XML是一种可扩展的标记语言 具有以下特点 1.严格区分大小写 2.标签成对出现 3.有且只有一个根节点 ⒉XML的创建 <?xml version="1.0" ...

  5. golang goroutine 介绍

    Goroutine 是用户态自己实现的线程,调度方式遇到IO/阻塞点方式就会让出cpu时间(其实也看编译器的实现,如果TA在代码里面插入一些yield,也是可以的. 反正现在不是抢占式的.) 不能设置 ...

  6. Python os.walk文件遍历用法【转】

    python中os.walk是一个简单易用的文件.目录遍历器,可以帮助我们高效的处理文件.目录方面的事情. 1.载入 要使用os.walk,首先要载入该函数 可以使用以下两种方法 import os ...

  7. Python 脚本碎片

    基本输入输出 用户名/密码 #!/usr/bin/env python3 # -*- coding:utf-8 -*- # Liu Lei import getpass username = inpu ...

  8. requests库入门11-重定向和请求历史

    默认情况下,除了head请求,requests会自动处理重定向 重定向就是会把url重新指定到另一个.比如github,使用http会自动重定向到https.一些公司也会使用网关啥的做重定向. r = ...

  9. C#实现邮件发送的功能

    Ø  发送邮件所用的核心知识点 微软封装好的MailMessage类:主要处理发送邮件的内容(如:收发人地址.标题.主体.图片等等) 微软封装好的SmtpClient类:主要处理用smtp方式发送此邮 ...

  10. 【转】Java内部类详解

    一.内部类基础 在Java中,可以将一个类定义在另一个类里面或者一个方法里面,这样的类称为内部类.广泛意义上的内部类一般来说包括这四种:成员内部类.局部内部类.匿名内部类和静态内部类.下面就先来了解一 ...