okHTTP请求
记得要加权限(不加活该你错)
get请求
private void getwenjian() {
get.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.callTimeout(1, TimeUnit.MINUTES);
builder.connectTimeout(1,TimeUnit.MINUTES);
OkHttpClient okHttpClient = builder.build();
Request.Builder builder1 = new Request.Builder();
builder1.url(urlstr);
builder1.get();
Request request = builder1.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i("----", "onFailure: 请求失败"+e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
ResponseBody body = response.body();
String string = body.string();
Log.i("----", "onResponse: "+string);
}
});
}
});
post请求
post.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OkHttpClient.Builder builder = new OkHttpClient.Builder();
builder.callTimeout(1, TimeUnit.MINUTES);
builder.connectTimeout(1,TimeUnit.MINUTES);
OkHttpClient okHttpClient = builder.build();
FormBody body = new FormBody.Builder()
.add("itemid", "2")
.add("act", "ad_app").build();
Request.Builder builder1 = new Request.Builder();
builder1.url(poststr);
builder1.post(body);
Request request = builder1.build();
Call call = okHttpClient.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i("----", "onFailure: 请求失败"+e);
}
@Override
public void onResponse(Call call, Response response) throws IOException {
ResponseBody body = response.body();
String string = body.string();
Log.i("----", "onResponse: "+string);
}
});
}
});
下载文件
go.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
OkHttpClient client = new OkHttpClient.Builder().connectTimeout(1, TimeUnit.MINUTES)
.callTimeout(1, TimeUnit.MINUTES)
.build();
progressBar.setMax(100);
final Request request = new Request.Builder().url(gostr).get().build();
Call call = client.newCall(request);
call.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Toast.makeText(MainActivity.this, "请求失败", Toast.LENGTH_SHORT).show();
}
@Override
public void onResponse(Call call, Response response) throws IOException {
ResponseBody body = response.body();
File file = Environment.getExternalStorageDirectory();
InputStream inputStream = body.byteStream();
int len=0;
byte[] b=new byte[1024];
int index = 0;
long l = body.contentLength();
FileOutputStream bai = new FileOutputStream(new File(file, "bai.mp4"));
while((len=inputStream.read(b))!=-1){
index+=len;
bai.write(b,0,len);
int ff= (int) (index/l*100);
progressBar.setProgress(index);
Log.i("-----", "onResponse: "+index);
}
}
});
un.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
}
});
}
});
下载文件
public void show(View view) {
Toast.makeText(MainActivity.this, "aaaaa", Toast.LENGTH_SHORT).show();
OkHttpClient client = new OkHttpClient.Builder().callTimeout(1, TimeUnit.MINUTES)
.connectTimeout(1, TimeUnit.MINUTES)
.build();
RequestBody requestBody = RequestBody.create(MediaType.parse("media/MP3"), new File("/sdcard/Music/程响 - 江南夜色.mp3"));
MultipartBody file = new MultipartBody.Builder()
.setType(MultipartBody.FORM)
.addFormDataPart("file", "aaa.mp3", requestBody).build();
Request request1 = new Request.Builder()
.url("http://169.254.152.45/hfs/")
.post(file)
.build();
Call call1 = client.newCall(request1);
call1.enqueue(new Callback() {
@Override
public void onFailure(Call call, IOException e) {
Log.i("-----", "onFailure: 上传失败了");
}
@Override
public void onResponse(Call call, Response response) throws IOException {
Log.i("--------", "onResponse: 发送成功");
}
});
}
必须设置文件允许别人访问与操作