0

因此,我正在尝试制作一个多部分形式的 POST,并且我想将一个附加org.apache.http.entity.mime.content.FileBodyMultipartEntity我将要发布的内容上。现在我已经得到了我想要填充的原始字符串文件数据FileBody。但是,这个项目使用的是 Google App Engine,它禁止我所见过的所有生成 FileBody 的方式。任何人都知道如何创建一个FileBody对象并在 GAE 中填充它?

4

1 回答 1

0

所以只需忽略 FileBody。您想使用 MultipartEntity.addPart(ContentBody content) 方法。这适用于 FileBody,因为 FileBody 的父类实现了 ContentBody。

ContentBody 是一个超级简单的接口,只有两个方法。创建一个实现它的类,创建你的类的一个实例,并将它传递给 addPart 方法。

public ByteContentBody implements ContentBody {
  private String name;
  private byte[] data;

  public ByteContentBody(String name, byte[] data) {
    this.name = name;
    this.data = data;
  }

  public String getFilename(){
    returns name;
  }

  public void writeTo(OutputStream out) throws IOException {
    out.write(data);
  }
}

http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/MultipartEntity.html

http://hc.apache.org/httpcomponents-client-ga/httpmime/apidocs/org/apache/http/entity/mime/content/ContentBody.html

于 2013-07-25T23:40:29.487 回答