OkHttpClient用法

直接上代码

OkHttpClient okHttpClient = new OkHttpClient();
RequestBody requestBody = new FormBody.Builder().add("mobile", "18888888888").add("type", "1").build();
Request request = new Request.Builder().url("http://192.168.1.128:8082/mobile/sendSmsCode").post(requestBody).build();
Call call = okHttpClient.newCall(request);
try {
    Response response = call.execute();
    System.out.println(response.body().string());
			
    Headers headers = response.headers();
    System.out.println(headers);
    List<String> cookies = headers.values("Set-Cookie");
    String session = cookies.get(0);
    System.out.println(cookies);
    String cookie = session.substring(0, session.indexOf(";"));
    System.out.println(cookie);

} catch (IOException e) {
    e.printStackTrace();
}

当涉及到服务器端的session时,需要携带cookie参数,cookie的值可以从上次请求中获得。

OkHttpClient okHttpClient = new OkHttpClient();
RequestBody requestBody = new FormBody.Builder().add("mobile", "18888888888").add("smsCode", "123456").build();
Request request = new Request.Builder().addHeader("cookie", "SPRING_SESSION_REDIS=b6b13cd0-3c44-4fa8-8d8d-f77dc8313720").url("http://192.168.1.128:8082/mobile/smsCode/checkout").post(requestBody).build();
Call call = okHttpClient.newCall(request);
try {
    Response response = call.execute();
    System.out.println(response.body().string());
	
    Headers headers = response.headers();
    System.out.println(headers);
    List<String> cookies = headers.values("Set-Cookie");
    String session = cookies.get(0);
    System.out.println(cookies);

    cookie = session.substring(0, session.indexOf(";"));
    System.out.println(cookie);
} catch (IOException e) {
    e.printStackTrace();
}

上传文件及其他参数

File file = new File("C:\\Users\\Public\\Pictures\\Sample Pictures\\test.png");
RequestBody fileBody = RequestBody.create(MediaType.parse("image/png"), file);
 
RequestBody requestBody = new MultipartBody.Builder()
/*.setType(MultipartBody.FORM)
.addPart(Headers.of("Content-Disposition", "form-data; name=\"file\"; filename=\"" + fileName + "\""), RequestBody.create(MEDIA_TYPE_PNG, file))
.addPart(Headers.of("Content-Disposition", "form-data; name=\"imagetype\""), RequestBody.create(null, imageType))
.addPart(Headers.of("Content-Disposition", "form-data; name=\"userphone\""), RequestBody.create(null, userPhone))*/
.addFormDataPart("upfile", "test.png", fileBody)
.addFormDataPart("action", "uploadimage")
.addFormDataPart("token", "")
.build();

OkHttpClient okHttpClient = new OkHttpClient();
Request request = new Request.Builder().addHeader("cookie", "SPRING_SESSION_REDIS=b6b13cd0-3c44-4fa8-8d8d-f77dc8313720").url("http://192.168.1.128:8082/mobile/update/avatar/img").post(requestBody).build();
Call call = okHttpClient.newCall(request);
try {
    Response response = call.execute();
    System.out.println(response.body().string());
	
    Headers headers = response.headers();
    System.out.println(headers);
    List<String> cookies = headers.values("Set-Cookie");
    String session = cookies.get(0);
    System.out.println(cookies);

    cookie = session.substring(0, session.indexOf(";"));
    System.out.println(cookie);
} catch (IOException e) {
	e.printStackTrace();
}

 

转载于:https://my.oschina.net/u/118686/blog/1863953

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值