private RestRequest buildRestRequest(URI uri,
ResourceMethod method,
DataMap dataMap,
Map<String, String> headers,
List<String> cookies,
ProtocolVersion protocolVersion,
ContentType contentType,
List<ContentType> acceptTypes,
boolean acceptResponseAttachments) throws Exception
{
RestRequestBuilder requestBuilder = new RestRequestBuilder(uri).setMethod(method.getHttpMethod().toString());
requestBuilder.setHeaders(headers);
requestBuilder.setCookies(cookies);
addAcceptHeaders(requestBuilder, acceptTypes, acceptResponseAttachments);
final ContentType type = resolveContentType(requestBuilder, dataMap, contentType);
if (type != null)
{
requestBuilder.setHeader(RestConstants.HEADER_CONTENT_TYPE, type.getHeaderKey());
requestBuilder.setEntity(ByteString.unsafeWrap(type.getCodec().mapToBytes(dataMap)));
}
addProtocolVersionHeader(requestBuilder, protocolVersion);
if (method.getHttpMethod() == HttpMethod.POST)
{
requestBuilder.setHeader(RestConstants.HEADER_RESTLI_REQUEST_METHOD, method.toString());
}
return requestBuilder.build();
}