in src/main/java/com/alibaba/cloudapi/sdk/client/OkHttp3Client.java [107:131]
private Request buildRequest(ApiRequest request){
if(request.getHttpConnectionMode() == HttpConnectionModel.SINGER_CONNECTION){
request.setHost(host);
request.setScheme(scheme);
}
ApiRequestMaker.make(request , appKey , appSecret);
RequestBody requestBody = null;
if(null != request.getFormParams() && request.getFormParams().size() > 0){
requestBody = RequestBody.create(MediaType.parse(request.getFirstHeaderValue(HttpConstant.CLOUDAPI_HTTP_HEADER_CONTENT_TYPE)) , HttpCommonUtil.buildParamString(request.getFormParams()));
}
/**
* 如果类型为byte数组的body不为空
* 将body中的内容MD5算法加密后再采用BASE64方法Encode成字符串,放入HTTP头中
* 做内容校验,避免内容在网络中被篡改
*/
else if(null != request.getBody() && request.getBody().length >0){
requestBody = RequestBody.create(MediaType.parse(request.getFirstHeaderValue(HttpConstant.CLOUDAPI_HTTP_HEADER_CONTENT_TYPE)) , request.getBody());
}
return new Request.Builder()
.method(request.getMethod().getValue() , requestBody)
.url(request.getUrl())
.headers(getHeadersFromMap(request.getHeaders()))
.build();
}