private HttpUriRequest buildRequest()

in src/main/java/com/alibaba/cloudapi/sdk/client/ApacheHttpClient.java [189:257]


    private HttpUriRequest buildRequest(ApiRequest apiRequest) {
        if(apiRequest.getHttpConnectionMode() == HttpConnectionModel.SINGER_CONNECTION){
            apiRequest.setHost(host);
            apiRequest.setScheme(scheme);
        }

        ApiRequestMaker.make(apiRequest , appKey , appSecret);
        RequestBuilder builder = RequestBuilder.create(apiRequest.getMethod().getValue());

        /*
         *  拼接URL
         *  HTTP + HOST + PATH(With pathparameter) + Query Parameter
         */
        try {
            URIBuilder uriBuilder = new URIBuilder();
            uriBuilder.setScheme(apiRequest.getScheme().name());
            uriBuilder.setHost(apiRequest.getHost());
            uriBuilder.setPath(apiRequest.getPath());
            if (!HttpCommonUtil.isEmpty(apiRequest.getQuerys())) {
                for (Map.Entry<String, List<String>> entry : apiRequest.getQuerys().entrySet()) {
                    for(String value : entry.getValue()){
                        uriBuilder.addParameter(entry.getKey(), value);
                    }

                }
            }
            builder.setUri(uriBuilder.build());
        } catch (URISyntaxException e) {
            throw new SdkException("build http request uri failed", e);
        }

        EntityBuilder bodyBuilder = EntityBuilder.create();

        //设置请求数据类型
        if(null == apiRequest.getFirstHeaderValue(HttpConstant.CLOUDAPI_HTTP_HEADER_CONTENT_TYPE)) {
            bodyBuilder.setContentType(ContentType.parse(apiRequest.getMethod().getRequestContentType()));
        }
        else{
            bodyBuilder.setContentType(ContentType.parse(apiRequest.getFirstHeaderValue(HttpConstant.CLOUDAPI_HTTP_HEADER_CONTENT_TYPE)));
        }


        if (!HttpCommonUtil.isEmpty(apiRequest.getFormParams())) {
            /*
             *  如果formParams不为空
             *  将Form中的内容以urlQueryParams的格式存放在body中(k1=v1&k2=v2&k3=v3)
             */
            List<NameValuePair> paramList = new ArrayList<NameValuePair>();

            for (Entry<String, List<String>> entry : apiRequest.getFormParams().entrySet()) {
                for(String value : entry.getValue()) {
                    paramList.add(new BasicNameValuePair(entry.getKey(), value));
                }
            }
            bodyBuilder.setParameters(paramList);
            builder.setEntity(bodyBuilder.build());
        } else if (!HttpCommonUtil.isEmpty(apiRequest.getBody())) {
            bodyBuilder.setBinary(apiRequest.getBody());
            builder.setEntity(bodyBuilder.build());
        }

        for (Map.Entry<String, List<String>> entry : apiRequest.getHeaders().entrySet()) {
            for(String value : entry.getValue()){
                builder.addHeader(entry.getKey(), value);
            }
        }

        return builder.build();
    }