我正在使用回答here嘗試進行數據上傳的POST
請求,但我對服務器端有不尋常的要求。該服務器是一個PHP腳本,在Content-Disposition
行上需要filename
,因爲它期望文件上傳。如何使用Apache httpclient獲得自定義Content-Disposition行?
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
線,無需先寫我String
成一個文件,然後回讀出來呢?