我正在使用这里的答案,尝试使用数据上传方式进行POST
请求,但是服务器端有不同寻常的要求。服务器端是一个PHP脚本,需要在Content-Disposition
行上指定一个filename
,因为它需要上传文件。
Content-Disposition: form-data; name="file"; filename="-"
然而,在客户端上,我希望提交一个内存缓冲区(在这种情况下是一个字符串),而不是一个文件,但是让服务器将其处理为文件上传。
然而,使用StringBody
时,我无法在Content-Disposition
行上添加所需的filename
字段。因此,我尝试使用FormBodyPart
,但那只是把filename
放在一个单独的行上。
HttpPost httppost = new HttpPost(url);
MultipartEntity entity = new MultipartEntity();
ContentBody body = new StringBody(data,
org.apache.http.entity.ContentType.APPLICATION_OCTET_STREAM);
FormBodyPart fbp = new FormBodyPart("file", body);
fbp.addField("filename", "-");
entity.addPart(fbp);
httppost.setEntity(entity);
如果我不想先把字符串写入文件再读出来,如何将filename
放入Content-Disposition
行中?
MultipartEntity
已被弃用。 - Lei Yang