gpt4 book ai didi

java - HttpMime 4.0.3 中的 InputStreamBody 设置内容长度

转载 作者:行者123 更新时间:2023-12-04 06:38:46 27 4
gpt4 key购买 nike

我正在尝试通过我的 java 代码发送多部分表单数据帖子。有人可以告诉我如何在下面设置内容长度吗?当我们使用实现 ContentDescriptor 接口(interface)的 InputStreamBody 时,似乎涉及到 header 。添加内容后,在 InputStreamBody 上执行 getContentLength 会给我-1。我对它进行了子类化以赋予 contentLength 我的字节数组的长度,但不确定 ContentDescriptor 所需的其他 header 是否会设置为正确的 POST。

HttpClient httpclient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(myURL);
ContentBody cb = new InputStreamBody(new ByteArrayInputStream(bytearray), myMimeType, filename);
//ContentBody cb = new ByteArrayBody(bytearray, myMimeType, filename);

MultipartEntity mpentity = new MultipartEntity(HttpMultipartMode.BROWSER_COMPATIBLE);
mpentity.addPart("key", new StringBody("SOME_KEY"));
mpentity.addPart("output", new StringBody("SOME_NAME"));
mpentity.addPart("content", cb);
httpPost.setEntity(mpentity);
HttpResponse response = httpclient.execute(httpPost);

HttpEntity resEntity = response.getEntity();

最佳答案

我是您注释掉的 ByteArrayBody 类的作者。

我写它是因为我遇到了和你一样的问题。原始 Jira 票在这里:https://issues.apache.org/jira/browse/HTTPCLIENT-1014

所以,既然你已经有一个 byte[],要么将 HttpMime 升级到最新版本,4.1-beta1,其中包括这个类。或者将 Jira 问题中的代码复制到您自己的项目中。

ByteArrayBody 类将完全满足您的需求。

关于java - HttpMime 4.0.3 中的 InputStreamBody 设置内容长度,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4548958/

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