我正在尝试使用帖子将数据发送到Web服务器,这是我到目前为止所做的:
private void entity(String id, String file)
throws JSONException, UnsupportedEncodingException, FileNotFoundException {
// Add your data
File myFile = new File(
Environment.getExternalStorageDirectory(), file);
InputStreamEntity reqEntity = new InputStreamEntity(
new FileInputStream(myFile), myFile.length());
reqEntity.setContentType("text/csv");
reqEntity.setChunked(true); // Send in multiple parts if needed
List<NameValuePair> nameValuePairs = new ArrayList<NameValuePair>(1);
nameValuePairs.add(new BasicNameValuePair("project", id));
httppost.setEntity(new UrlEncodedFormEntity(nameValuePairs));
httppost.setEntity(reqEntity);
//httppost.setHeader("Content-Length", String.valueOf(myFile.length()));
}
当我发送帖子请求时,它会返回所需的内容长度,但不是在这里设置的吗?
InputStreamEntity reqEntity = new InputStreamEntity(
new FileInputStream(myFile), myFile.length());
我不知道我在做什么是对的,请帮助,谢谢
编辑 -
当我尝试使用
设置内容长度时httppost.setHeader("Content-Length", String.valueOf(myFile.length()));
它已经设置了标题。
因此,为什么它被注释掉
答案 0 :(得分:1)
在我的情况下使用
reqEntity.setChunked(false);
解决了这个问题。
答案 1 :(得分:0)
设置在将数据写入InputStreamEntity
时本地使用的OutputStream
的内容长度。它不会将该值设置为您的请求的参数。您需要自己设置该标题。
答案 2 :(得分:0)
您可能希望使用MultipartEntity并使用addPart
方法添加StringBody
和InputStreamBody
(或)FileBody