Java 类org.springframework.http.RequestEntity.BodyBuilder 实例源码

项目:Settings    文件:ApiClient.java   
/**
 * Invoke API by sending HTTP request with the given options.
 *
 * @param <T> the return type to use
 * @param path The sub-path of the HTTP URL
 * @param method The request method
 * @param queryParams The query parameters
 * @param body The request body object
 * @param headerParams The header parameters
 * @param formParams The form parameters
 * @param accept The request's Accept header
 * @param contentType The request's Content-Type header
 * @param authNames The authentications to apply
 * @param returnType The return type into which to deserialize the response
 * @return The response body in chosen type
 */
public <T> T invokeAPI(String path, HttpMethod method, MultiValueMap<String, String> queryParams, Object body, HttpHeaders headerParams, MultiValueMap<String, Object> formParams, List<MediaType> accept, MediaType contentType, String[] authNames, ParameterizedTypeReference<T> returnType) throws RestClientException {
    updateParamsForAuth(authNames, queryParams, headerParams);

    final UriComponentsBuilder builder = UriComponentsBuilder.fromHttpUrl(basePath).path(path);
    if (queryParams != null) {
        builder.queryParams(queryParams);
    }

    final BodyBuilder requestBuilder = RequestEntity.method(method, builder.build().toUri());
    if(accept != null) {
        requestBuilder.accept(accept.toArray(new MediaType[accept.size()]));
    }
    if(contentType != null) {
        requestBuilder.contentType(contentType);
    }

    addHeadersToRequest(headerParams, requestBuilder);
    addHeadersToRequest(defaultHeaders, requestBuilder);

    RequestEntity<Object> requestEntity = requestBuilder.body(selectBody(body, formParams, contentType));

    ResponseEntity<T> responseEntity = restTemplate.exchange(requestEntity, returnType);

    statusCode = responseEntity.getStatusCode();
    responseHeaders = responseEntity.getHeaders();

    if (responseEntity.getStatusCode() == HttpStatus.NO_CONTENT) {
        return null;
    } else if (responseEntity.getStatusCode().is2xxSuccessful()) {
        if (returnType == null) {
            return null;
        }
        return responseEntity.getBody();
    } else {
        // The error handler built into the RestTemplate should handle 400 and 500 series errors.
        throw new RestClientException("API returned " + statusCode + " and it wasn't handled by the RestTemplate error handler");
    }
}
项目:Settings    文件:ApiClient.java   
/**
 * Add headers to the request that is being built
 * @param headers The headers to add
 * @param requestBuilder The current request
 */
protected void addHeadersToRequest(HttpHeaders headers, BodyBuilder requestBuilder) {
    for (Entry<String, List<String>> entry : headers.entrySet()) {
        List<String> values = entry.getValue();
        for(String value : values) {
            if (value != null) {
                requestBuilder.header(entry.getKey(), value);
            }
        }
    }
}
项目:spring-cloud-gateway    文件:ProxyExchange.java   
private BodyBuilder headers(BodyBuilder builder) {
    Set<String> sensitive = this.sensitive;
    if (sensitive == null) {
        sensitive = DEFAULT_SENSITIVE;
    }
    proxy();
    for (String name : headers.keySet()) {
        if (sensitive.contains(name.toLowerCase())) {
            continue;
        }
        builder.header(name, headers.get(name).toArray(new String[0]));
    }
    return builder;
}
项目:artifactory-resource    文件:HttpArtifactoryRepository.java   
private BodyBuilder deployRequest(DeployableArtifact artifact) throws IOException {
    URI uri = UriComponentsBuilder.fromUriString(this.uri).path(this.repositoryName)
            .path(artifact.getPath())
            .path(buildMatrixParams(artifact.getProperties()))
            .buildAndExpand(NO_VARIABLES).encode().toUri();
    Checksums checksums = artifact.getChecksums();
    return RequestEntity.put(uri).contentType(MediaType.APPLICATION_OCTET_STREAM)
            .header("X-Checksum-Sha1", checksums.getSha1())
            .header("X-Checksum-Md5", checksums.getMd5());
}
项目:spring-cloud-gateway    文件:ProxyExchange.java   
public ResponseEntity<T> get() {
    RequestEntity<?> requestEntity = headers((BodyBuilder) RequestEntity.get(uri))
            .build();
    return exchange(requestEntity);
}
项目:spring-cloud-gateway    文件:ProxyExchange.java   
public ResponseEntity<T> head() {
    RequestEntity<?> requestEntity = headers((BodyBuilder) RequestEntity.head(uri))
            .build();
    return exchange(requestEntity);
}
项目:spring-cloud-gateway    文件:ProxyExchange.java   
public ResponseEntity<T> options() {
    RequestEntity<?> requestEntity = headers((BodyBuilder) RequestEntity.options(uri))
            .build();
    return exchange(requestEntity);
}
项目:spring-cloud-gateway    文件:ProxyExchange.java   
public ResponseEntity<T> delete() {
    RequestEntity<Void> requestEntity = headers(
            (BodyBuilder) RequestEntity.delete(uri)).build();
    return exchange(requestEntity);
}