android开发中使用okhttp上传文件到服务器

  

开发安卓手机客户端,常常会需要上传文件到服务器,比如:你手机里的照片。

  

使用okhttp会是一个很好的选择。它使用很简单,而且运行效率也很高。

  

首先,在app/构建。gradle的依赖增加“com.squareup.okhttp3: okhttp: 3.8.1”可实现以参照如下代码

        应用插件:“com.android.application”      应用插件:“kotlin-android”      应用插件:“kotlin-android-extensions”      android {   compileSdkVersion 26   defaultConfig {   applicationId“com.cofox.mykt.myweather”   minSdkVersion 19   targetSdkVersion 26   versionCode 1   versionName“1.0”   testInstrumentationRunner“android.support.test.runner.AndroidJUnitRunner”   }   buildTypes {   释放{   minifyEnabled假   proguardFiles getDefaultProguardFile (“proguard-android.txt”)、“proguard-rules.pro”   }   }   sourceSets {   主要{   res.srcDirs=(   ' src/main/res/layout/menufunction ',   “src/main/res”   ]   }   }   }   依赖关系{   实现fileTree (dir:“库”,包括:[' * . jar '])   实现“org.jetbrains.kotlin: kotlin-stdlib-jre7: kotlin_version美元”   实现“com.android.support: appcompat-v7:26.1.0”实现“com.android.support.constraint: constraint-layout: 1.0.2”   testImplementation junit: junit: 4.12“androidTestImplementation”com.android.support.test:跑步者:1.0.1 androidTestImplementation com.android.support.test.espresso: espresso-core: 3.0.1的   实现“org.jetbrains.anko: anko-sdk19:0.10.3”   实现“org.jetbrains.anko: anko-support-v4:0.10.3”   实现“org.jetbrains.anko: anko-appcompat-v7:0.10.3”   实现“com.google.code.gson: gson: 2.7”   实现“com.android.support:百分比:26.1.0”   实现“com.squareup.okhttp3: okhttp: 3.8.1”   }      

在界面上添加一个按钮,以及一个可滚动显示返回值的文字组件。

        & lt;按钮   android: id=癅 + id/btnOkHttpUploadFilePost”   android: layout_width=" wrap_content "   android: layout_height=" wrap_content "   android: layout_weight=" 1 "   android:文本=" OkHttp上传文件(POST)”   android: textAllCaps=" false "/比;   & lt;滚动视图   android: layout_width=" match_parent "   android: layout_height=皐rap_content”比;   & lt; TextView   android: id=癅 + id/ttviewResponse”   android: layout_width=" match_parent "   android: layout_height=" match_parent "/比;   & lt;/ScrollView>      

因为只是基本功能实现,所以采用发送手机上指定的一个文件就达成目的。

  

在代码编辑区,首先添加一个默认的服务器地址。

     //设置访问服务端IP   var serverIp=" 192.168.1.105 "      

在onCreate方法内添加按钮操作代码

     //发布方式上传文件(sd卡跟路径image.png文件)   btnOkHttpUploadFilePost。setOnClickListener {   线程{   尝试{   val url=" http://" + serverIp +“/上传”   val=文件(“/sdcard/image.png”)   val fileBody=RequestBody.create (MediaType.parse(“应用程序/八进制”),文件)   val requestBody=MultipartBody.Builder ()   .setType (MultipartBody.FORM)   .addFormDataPart(“还是”、“形象。png”, fileBody)   .build ()   val请求=Request.Builder ()   .url (url)   . post (requestBody)   .build ()   val httpBuilder=OkHttpClient.Builder ()   val okHttpClient=httpBuilder   java.util.concurrent.TimeUnit.SECONDS .connectTimeout (10)   java.util.concurrent.TimeUnit.SECONDS .writeTimeout(15日)   .build ()   val响应=okHttpClient.newCall(请求). execute ()   val responseStr=response.body () & # 63; .string ()   runOnUiThread {ttviewResponse。文本=responseStr}   }捕捉(e:例外){      }   }.start ()   }      

这段代码中的val url值是根据服务端的要求设置的。

  

val文件是手机上图片文件的位置。

  

val requestBody中.addFormDataPart(“还是”、“形象。png”, fileBody)的还是也是服务端要求的必要键。

  

最后的responseStr是上传操作之后,获取服务端的信息反馈。

  

 android开发中使用okhttp上传文件到服务器”>,</p>
  <p> </p>
  <p>以上所述是小编给大家介绍的android开发中使用okhttp上传文件到服务器,希望对大家有所帮助,如果大家有任何疑问请给我留的言,小编会及时回复大家的。在此也非常感谢大家对网站的支持! <h2 class=android开发中使用okhttp上传文件到服务器