gpt4 book ai didi

java - 在 Android 中使用 MultipartEntityBuilder 时 HttpPost 返回错误

转载 作者:太空宇宙 更新时间:2023-11-03 18:08:03 26 4
gpt4 key购买 nike

我正在尝试查询“http://www.idmypill.com/api/id/”api,我收到的 JSON 字符串是 {"results":[],"success":false,"errors":null}这是我的服务处理程序类:

public String makeServiceCall(String url, int method, 
String api, byte[] pillImage)
{
try {
// http client
DefaultHttpClient httpClient = new DefaultHttpClient();
HttpEntity httpEntity = null;
HttpResponse httpResponse = null;


// Checking http request method type
if (method == POST)
{
android.os.Debug.waitForDebugger();
HttpPost httpPost = new HttpPost(url);

httpPost.setHeader("data = api_key", api);
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addBinaryBody("files = image", pillImage);
entity = builder.build();
Log.d("Entity", entity.toString());

httpPost.setEntity(entity);
Log.d("post", httpPost.toString());
httpResponse = httpClient.execute(httpPost);

Log.d("params", httpResponse.getParams().toString());

}

httpEntity = httpResponse.getEntity();
response = EntityUtils.toString(httpEntity);

} catch (UnsupportedEncodingException e) {
e.printStackTrace();
} catch (ClientProtocolException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}

return response;

}

网站给出的python示例是:

# highly suggested to use the requests package
# http://www.python-requests.org/en/latest/
import requests

# read in the image and construct the payload
image = open("example.jpg").read()
data = {"api_key": "KH8hdoai0wrjB0LyeA3EMu5n4icwyOQo"}
files = {"image": open("example.jpg")}

# fire off the request
r = requests.post("http://www.idmypill.com/api/id/",
data = data,
files = files)

# contents will be returned as a JSON string
print r.content

不知何故,我的发布格式一定是错误的,或者他们是否可能特别想要 .jpg 图像而不是字节数组?我不熟悉Python,并且已经在这个问题上苦苦挣扎了一个多星期,所以任何帮助将不胜感激。

最佳答案

尝试:

 ...
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("api_key", api);
builder.addPart("image", pillImage);
...

如果 addPart 不适用于字节数组(我正在工作,无法测试),则获取图像文件的名称并执行此操作肯定会起作用:

 ...
pillImage = "/path/to/the/image.jpg"; //This is the image file name
MultipartEntityBuilder builder = MultipartEntityBuilder.create();
builder.addTextBody("api_key", api);
File imageFile = new File(pillImage); //Open the image
builder.addPart("image", imageFile);
...

关于java - 在 Android 中使用 MultipartEntityBuilder 时 HttpPost 返回错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26480838/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com