android 依据给定的url推送图片

第一次发表博客,对版面还不熟悉,大家将就看,内容经典才是好的。
本文主要讲解从客户端推送图片到服务器的功能。
前提是服务器端给了个url,如下的形式:
http://123.206.94.11/?picture=UploadFirstFrame_444_1970-01-01-08-07-24.jpg
其中等号后面是我上传到服务器的图片名称,这个名称我可以随意定,这里举例子把名称设置为UploadFirstFrame_444_1970-01-01-08-07-24.jpg
剩下的就是把本地的图片推上去了。
这里使用AsyncHttpClient来完成任务,使用该组件需要在studio的build.gradle里面添加如下一句:
implementation ‘com.loopj.android:android-async-http:1.4.8’
由于代码中还用到了org.apache.http,android从API22开始已经废弃它,如果需要用的话要在build.gradle里面添加一句useLibrary 'org.apache.http.legacy‘。具体位置如下所示(最后一行):
android {
compileSdkVersion 28
defaultConfig {
applicationId “com.example.h2410074.test”
minSdkVersion 21
targetSdkVersion 28
versionCode 1
versionName “1.0”
testInstrumentationRunner “android.support.test.runner.AndroidJUnitRunner”
}
buildTypes {
release {
minifyEnabled false
proguardFiles getDefaultProguardFile(‘proguard-android.txt’), ‘proguard-rules.pro
}
}
useLibrary ‘org.apache.http.legacy’
}
导入上面两个组件以后就可以开始使用了!!!
核心代码如下:
//客户端要上传的图片的绝对地址
String path = Environment.getExternalStorageDirectory().getAbsolutePath()+"/DCIM/Camera/IMG_0081.JPG";
//推送到服务端的url地址
String url = “http://123.206.94.11/?picture=UploadFirstFrame_444_1970-01-01-08-07-24.jpg”;
//构造一个file
File file = new File(path);
//构造AsyncHttpClient对象
AsyncHttpClient client = new AsyncHttpClient();
//传递的参数
RequestParams params = new RequestParams();
try {
params.put(“uploadfile”, file);
} catch (FileNotFoundException e) {
e.printStackTrace();
}
client.post(url, params, new AsyncHttpResponseHandler() {
@Override
public void onSuccess(int statusCode, org.apache.http.Header[] headers, byte[] responseBody) {
Log.d(TAG,“upload sucess”);
//上传成功后可以在此处继续添加自己的逻辑
}
@Override
public void onFailure(int statusCode, org.apache.http.Header[] headers, byte[] responseBody, Throwable error) {
Log.d(TAG,“upload fail”);
}
});
以上代码亲测可用,这也是我开发中使用的方法,简单快捷,甚至不用自己单独启用子线程来操作上传动作。在此记录一下,分享给大家的同时也做个笔记。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值