OKHttp使用心得(持续更新)

mac2024-03-30  32

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含有很多方法:

body()返回body内的内容header("token")内填写你需要的内容,比如token,会返回你需要的tokenheaders(),返回所以返回值的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)