首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在android上使用entity builder时Truevault请求失败,而curl等效项成功。对代码的修改有什么建议吗?

在android上使用entity builder时Truevault请求失败,而curl等效项成功。对代码的修改有什么建议吗?
EN

Stack Overflow用户
提问于 2015-02-10 15:11:00
回答 1查看 215关注 0票数 0

我正在尝试通过使用curl https://api.truevault.com/v1/vaults/00000000-0000-0000-0000-000000000000/blobs \ -X POST \ -u API_KEY | ACCESS_TOKEN:\ --form "file=@xray.pdf“\ -H "Content-Type:multipart/form-data”等效项创建blob来上载图像。“

https://docs.truevault.com/BLOBs#create-a-blob上所述

代码语言:javascript
复制
HttpClient httpClient = new DefaultHttpClient();
Log.d(Kiwee.KIWEE_TAG,"Request is:"+request.getUrl());
//Request printed here is:
//https://api.truevault.com/v1/vaults/vault_id/blobs
HttpPost post = new HttpPost(request.getUrl());
String basicAuth = BASIC_AUTH+Base64.encodeToString(API_KEY.getBytes(),Base64.DEFAULT);
post.setHeader(AUTHORIZATION,basicAuth);
post.setHeader(CONTENT_TYPE,TYPE_MULTIPART_FORM_DATA);
file = new File(filePath);
//file path on android device of image taken
MultipartEntityBuilder entityBuilder = MultipartEntityBuilder.create().setMode(HttpMultipartMode.BROWSER_COMPATIBLE);
entityBuilder.addPart("file",new FileBody(file));
post.setEntity(entityBuilder.build());
HttpResponse response = httpClient.execute(post);

它以一个错误的请求告终。以下是响应:

代码语言:javascript
复制
<html>
<head><title>400 Bad Request</title></head>
<body bgcolor="white">
<center><h1>400 Bad Request</h1></center>
<hr><center>nginx/1.6.2</center>
</body>
</html>

使用curl equivalent时,请求成功。有什么建议我应该在java代码中进行修改吗?

EN

回答 1

Stack Overflow用户

发布于 2015-02-17 13:45:00

已解决:

代码语言:javascript
复制
String basicAuth=BASIC_AUTH+Base64.encodeToString(API_KEY.getBytes(),Base64.DEFAULT);

更改为

代码语言:javascript
复制
String basicAuth = BASIC_AUTH + Base64.encodeToString((API_KEY+":"+EMPTY_STRING).getBytes(), Base64.NO_WRAP);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28425981

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档