Okhttp 사용 방법
File direction=new File("/storage/emulated/0/dayhc");
long hcMax=1024*1024*100;
//
Cache cache=new Cache(direction,hcMax);
// okhttp
OkHttpClient client = new OkHttpClient.Builder()
.cache(cache)//
.build();
파일 업로드
private void upload() {
OkHttpClient okHttpClient = new OkHttpClient();
MediaType mediaType = MediaType.parse("application/octet-stream");
File file = new File("/storage/emulated/0/mm.png");
File file = new File("/storage/emulated/0/mm.png");
if (file.exists()) {// file.exists() true
RequestBody requestBody = RequestBody.create(mediaType, file);
MultipartBody multipartBody = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", file.getName(), requestBody)
.build();
Request request = new Request.Builder()
.url(mUpFileUrl)
.post(multipartBody)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
String str = e.getMessage();
Log.i(TAG, "onResponse : " + str);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String str = response.body().string();
Log.i(TAG, "onResponse : " + str);
// UploadResultBean uploadResultBean = new Gson().fromJson(str, UploadResultBean.class);
try {
JSONObject jsonObject = new JSONObject(str);
int code= (int) jsonObject.get("code");
Log.i(TAG, "onResponse code: " + code);
if(code == 200){// , url , ,
JSONObject data = jsonObject.getJSONObject("data");
String url = (String) data.get("url");
Log.i(TAG, "onResponse : " + url);
Glide.with(MainActivity.this).load(url).into(mHeaderImg);//
}
} catch (Exception e) {
e.printStackTrace();
}
// if (uploadResultBean.getCode() == 200) {//
// String url = uploadResultBean.getData().getUrl();// url
// Glide.with(MainActivity.this).load(url).into(mHeaderImg);//
//
// }
}
});
}
From 양식을 제출하면 post 제출 키 값 쌍
private void login() {
OkHttpClient okHttpClient = new OkHttpClient();
//post , FormBody.Builder ,
RequestBody requestBody = new FormBody.Builder()
.add("username", "qawsedrf")
.add("password", "qazwsxedc")
.build();
Request request = new Request.Builder()
.url(loginUrl)
.post(requestBody)
.build();
okHttpClient.newCall(request).enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
String str = e.getMessage();
Log.i(TAG, " : " + str);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
String str = response.body().string();
Log.i(TAG, "onResponse : " + str);
//json
LoginResultBean loginResultBean = new Gson().fromJson(str, LoginResultBean.class);
int errorCode = loginResultBean.getErrorCode();
handler.sendMessage(handler.obtainMessage(1, errorCode));
}
});
}
//okhttp 다운로드 파일
OkHttpClient build = new OkHttpClient.Builder()
.build();
Request build1 = new Request.Builder()
.url("https://alissl.ucdl.pp.uc.cn/fs08/2019/07/05/1/110_17e4089aa3a4b819b08069681a9de74b.apk")
.get()
.build();
Call call = build.newCall(build1);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i("tag", "onFailure: "+e.getMessage());
}
@Override
public void onResponse(Call call, Response response) throws IOException {
// liu
ResponseBody body = response.body();
InputStream inputStream = body.byteStream();
long contentLength = body.contentLength();//
Log.i("Tag", "onResponse: "+ contentLength /1024);
File cacheDir = context.getCacheDir();//
File file = new File(cacheDir,"xxx.apk");//
FileOutputStream outputStream = new FileOutputStream(file);
byte [] by=new byte[1024];
int sum=0;
int read = inputStream.read();
while(read!=-1){//
sum=sum+read;//
float progies = sum*1.0f / contentLength;// /
Log.i("Tag", "onResponse: "+" "+ progies);
outputStream.write(by,0,read);//
pb.setProgress((int) progies);//
read = inputStream.read();
}
Toast.makeText(MainActivity.this, " ", Toast.LENGTH_SHORT).show();
inputStream.close();
outputStream.close();
Log.i("tag", "onResponse: "+" "+file.length()/1024);
}
});
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
다양한 언어의 JSONJSON은 Javascript 표기법을 사용하여 데이터 구조를 레이아웃하는 데이터 형식입니다. 그러나 Javascript가 코드에서 이러한 구조를 나타낼 수 있는 유일한 언어는 아닙니다. 저는 일반적으로 '객체'{}...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.