首页 理论教育 使用OkHttp提交文件到服务器的方法

使用OkHttp提交文件到服务器的方法

时间:2023-06-17 理论教育 版权反馈
【摘要】:在项目build.gradle文件中的dependencies闭包下进行添加对OkHttp的依赖。图6.4从网上下载commons-fileupload-1.3.1.jar和commons-io-2.4.jar并把它们复制到Tomcat的lib库文件夹用于支持jsp的文件上传,见图6.5。图6.5编写login2.html文件,该文件用于测试upload.jsp文件的功能是否正常。图6.6启动Tomcat测试一下文件上传功能,见图6.7。

使用OkHttp提交文件到服务器的方法

构建一个MultipartBody,将需要上传的文件通过这个对象传递给服务器,有两个方法可使用:

addFormDataPart(String name,String filename,RequestBody body):

name为对应该文件的表单元素的名称,即类似<input type=“file”name=“myFile”>的myfile。

filename为要上传的文件名。

body为封装了要上传的文件数据的RequestBody,通过RequestBody的静态方法create(okhttp3.MediaType contentType,File file)来构建一个RequestBody对象,其中MediaType为一个枚举对象,这里一般使用Multipart.FORM。

addFormDataPart(String name,String value):其他普通的表单元素。

案例:

(1)新建一个module,命名为OkHttpFileDemo。

(2)在项目build.gradle文件中的dependencies闭包下进行添加对OkHttp的依赖。

部分代码如下:

(3)在项目build.gradle文件中的Android下添加指定jdk版本的代码以解决Android studio 导入依赖构建时报错(Error:Static interface methods are only supported starting with Android N(--min-api 24))。

部分代码如下:

(4)在AndroidManifest.xml中添加权限(注意需要增加外部存储读写权限)。

部分代码如下:

(5)用户可自行架设一个Tomcat服务器,需注意的是jdk版本和Tomcat版本的匹配问题,Tomcat6不支持jdk1.8版本,建议安装Tomcat7或更高版本,否则加载jsp页面会报错:An error occurred at line:1 in the generated java file。本案例使用的是apache-tomcat-8.0.38,见图6.4。(www.xing528.com)

图6.4

(6)从网上下载commons-fileupload-1.3.1.jar和commons-io-2.4.jar并把它们复制到Tomcat的lib库文件夹用于支持jsp的文件上传,见图6.5。

图6.5

(7)编写login2.html文件,该文件用于测试upload.jsp文件的功能是否正常。

(8)编写upload.jsp文件,该文件用于完成文件上传功能。

(9)把login2.html和upload.jsp放到Tomcat的webapps\ROOT文件夹下,见图6.6。

图6.6

(10)启动Tomcat测试一下文件上传功能,见图6.7。如果Tomcat启动控制台出现中文乱码,需要更改Tomcat根目录下“conf”子目录下的“logging.properties”文件中所有的“encoding = UTF-8”配置项,将其改为“encoding = GBK”。

图6.7

测试成功后再进行Android代码的测试。

(11)布局文件activity_main.xml。

(12)MainActivity.java。

(13)运行效果,见图6.8。

图6.8

免责声明:以上内容源自网络,版权归原作者所有,如有侵犯您的原创版权请告知,我们将尽快删除相关内容。

我要反馈