OKHttp使用心得(持续更新)

1.如何配置用户名密码

 String credential = Credentials.basic(Username,Password);
        Request request = new Request.Builder()
                .url(url)
                .header("Authorization",credential)
                .addHeader("x-csrf-token","Fetch")
                .build();
 try {
           response = client.newCall(request).execute();
           logger.info("headers:"+String.valueOf(response.headers()));
           logger.info("getCsrfToke:"+String.valueOf(response.header("x-csrf-token")));
            logger.info("body:"+response.body().string());
           logger.info(String.valueOf(response.isSuccessful()));
        } catch (IOException e) {
            e.printStackTrace();
        }

通过newCall(request).execute执行返回response。

respones含有很多方法:

  1. body()返回body内的内容
  2. header("token")内填写你需要的内容,比如token,会返回你需要的token
  3. headers(),返回所以返回值的header

2.Post请求

2.1不含body,有些post请求需要不实用body,主要传递内容配置着url和hearder中

比如

  String credential = Credentials.basic(Username,Password);
        RequestBody requestBody = RequestBody.create(null, new byte[]{});
        Request request = new Request.Builder()
                .url(url)
                .header("Authorization",credential)
                .addHeader("x-csrf-token",token.split(";;")[1])
                .addHeader("cookie",token.split(";;")[0])
                .addHeader("Content-Type", "application/json")
                .post(requestBody)
                .build();

需要建一个空的requestBody作为前提,具体语法

        RequestBody requestBody = RequestBody.create(null, new byte[]{});

url,header通过demo的代码可以设置

2.2包含requestbody的请求

比如传递文件

    RequestBody fileBody = RequestBody.create(MEDIA_TYPE_PNG,file);
        access_token = "Bearer "+access_token;
        RequestBody requestBody = new MultipartBody.Builder()
                .setType(MultipartBody.FORM)
                .addFormDataPart("files","a.png",fileBody)
                .addFormDataPart("lang","en")
                .addFormDataPart("outputType","txt")
                .addFormDataPart("pageSegMode","1")
                .addFormDataPart("modelType","lstmStandard")
                .addFormDataPart("textExtractionMode","0")
                .build();
        Request request = new Request.Builder()
                .header("Authorization",access_token)
                .url(url)
                .post(requestBody)
                .build();
        Response response = client.newCall(request).execute();
传递普通的body,
RequestBody requestBody = new FormBody.Builder()
                .add("DeliveryDocument",deliveryNum)
                .build();
        String access_token = "Bearer "+token;
        Request request = new Request.Builder()
                .url(url)
                .header("Authorization",access_token)
                .addHeader("If-Match","W/\"'0004'\"")
                .post(requestBody)
                .build();
        response = client.newCall(request).execute();

暂时更新到这里

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值