okhttp之上傳
//點擊事件
public void sctp(View view)
{
//創建OKHttpClient對象
OkHttpClient okHttpClient = new OkHttpClient.Builder()
.connectTimeout(5, TimeUnit.SECONDS)
.build();
//上傳的文件路勁(手機sd卡的位置)
File file = new File(Environment.getExternalStorageDirectory(),"img2.png");
//創建請求體
RequestBody fileBody = RequestBody.create(MediaType.parse("application/octet-stream"),file);
//複雜的文件上傳類
MultipartBody body = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file","test.png",fileBody)
.build();
Request request = new Request.Builder()
.post(body)
.url("https://www.zhaoapi.cn/file/upload")
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println("上傳失敗");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
System.out.println("上傳成功:"+response.body().string());
}
});
}
okhttp下載
//下載圖片
public void xztp(View view)
{
OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder()
.url("http://msoftdl.360.cn/mobile/shouji360/360safesis/198227/360MobileSafe_7.7.3.1016.apk")
.get()
.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
System.out.println("下載失敗");
}
@Override
public void onResponse(Call call, Response response) {
//得到服務器所傳的文件內容
InputStream is = response.body().byteStream();
byte[] buffer = new byte[1024];
int len;
FileOutputStream fos = null;
try {
fos = new FileOutputStream(new File(Environment.getExternalStorageDirectory(),"360mobile.apk"));
while((len = is.read(buffer)) != -1){
fos.write(buffer,0,len);
fos.flush();
}
} catch (IOException e) {
e.printStackTrace();
}finally {
if(fos != null){
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
System.out.println("下載成功");
}
});
}
*要點:
1.權限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
<uses-permission android:name="android.permission.INTERNET"></uses-permission>
2.圖片img2.png的路徑(需要自己導入手機sd)
Tools–>Android–>Android Device Monitor(找到模擬器)
夜神模擬器sd卡路徑
mnt–>shell–>emulated*