2

Androidスマートフォンでは、setEntity()を使用してFileEntityをPOSTリクエストに追加しました。

HttpPost post = new HttpPost(uri);
FileEntity reqEntity = new FileEntity(f, "application/x-gzip");
reqEntity.setContentType("binary/octet-stream");
reqEntity.setChunked(true);
post.addHeader("X-AethersNotebook-Custom", configuration.getCustomHeader());
post.setEntity(reqEntity);

ボトルを使用する場合、これを試しましたが、機能しません

f = request.body
gzipper = gzip.GzipFile( fileobj= f )
content = gzipper.read()

内容は空の文字列になります。そこで、request.formsとrequest.filesを調べてみました。どちらにも鍵と価値はありません。

request.files.keys()
request.forms.keys()

検索するとき、私はエンティティについて読みました:「リクエストはエンティティを転送するかもしれません」そしてエンティティはentity-headerとentity-valueを持っています。したがって、file-content = e.get(entity-header)のようなものになる可能性があります。

4

1 に答える 1

1

そのコードを使用して、電話はチャンクエンコーディングを使用してファイルを送信します。py-bottleはチャンクエンコンディングをサポートしていないため、ここでの解決策は、POSTリクエストの本文としてファイルを送信するようにAndroidを書き直すことです。

于 2011-11-10T11:42:43.587 に答える