【发布时间】:2018-12-18 05:39:02
【问题描述】:
我正在尝试使用 CloseableHttpClient.getting response as 200 将 CSV 文件上传到谷歌云存储,但内容类型未正确反映。
CloseableHttpClient httpClient = HttpClients.createDefault();
CloseableHttpResponse response;
try {
ContentBody fileBody = new FileBody(content, ContentType.DEFAULT_BINARY);
HttpEntity entity = MultipartEntityBuilder.create().addPart("FILE_NAME", fileBody)
.setMode(HttpMultipartMode.BROWSER_COMPATIBLE).build();
HttpPost request = new HttpPost(
"https://www.googleapis.com/upload/storage/v1/b/BUCKET_NAME/o?uploadType=media&name=FILE_NAME");
request.addHeader(Constants.API_HEADER_AUTHORIAZATION,
Constants.API_HEADER_AUTHORIAZATION_VALUE + accessToken());
request.setEntity(entity);
response = httpClient.execute(request);
请找到下面上传的谷歌存储桶截图:
【问题讨论】:
-
您是否也尝试添加
Content-Type标头? -
@soufrk 是的,我试过了,没用
-
尝试以这种方式上传文件有什么特别的原因吗?如果没有,我会使用Google Cloud Storage client libraries for Java。这是uploading object 和GitHub 的文档
-
@Iñigo 我想,如果我们使用 HttpClient,那么如果我们只需更改 API 就可以迁移到其他云存储。
标签: java google-cloud-storage apache-httpclient-4.x