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,会返回你需要的token
- 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();
暂时更新到这里