I'm not an expert on S3, but looking at the documentation quickly I believe that you still include the bucket name in the request URI, and therefore, the host header would get set correctly by the HttpClient.
Looking at the s3 documentation at: http://docs.amazonwebservices.com/AmazonS3/2006-03-01/dev/index.html?UsingBucket.html. It says:
"The similarities between buckets and domain names is not a coincidence—there is a direct mapping between Amazon S3 buckets and subdomains of s3.amazonaws.com. Objects stored in Amazon S3 are addressable using the REST API under the domain bucketname.s3.amazonaws.com. For example, if the object homepage.html is stored in the Amazon S3 bucket mybucket its address would be http://mybucket.s3.amazonaws.com/homepage.html."
Thanks