2010-12-15 7 views
3

ApacheのHTTPClientを使用してポストパラメータに生のバイトを追加する方法はありますか?私のモチベーションは、特定のエンコーディングでストリームの生のバイトをストリーミングし、サーバーに到達したときにそのデータに何が起こるかをテストすることです。Apache HttpClientを使用してパラメータをポストするrawバイトを追加する

編集:Apacheには、InputStreamを使用してリクエスト本体に追加する非推奨の方法があることに気付きました。このため、ByteArrayInputStreamをフィードできます。

答えて

1

(あなたが指定されていませんでしたので、私はあなたは、Apache HttpClientをバージョン4.xを使用していると仮定している)

私はあなたが通常のリクエストのPOSTパラメータを作成するために、生のバイトを「追加」することができないと思います。

HttpEntityを使用してPostMethodを作成することは可能です。正当なパラメータと誤ってエンコードされたもので構成されています。コンテンツの書式設定とエンコードを自分で行う必要があるかもしれませんが、有効なパラメータをUrlEncodedFormEntityに入れてwriteToメソッドを使用して、書式化/エンコードされたバージョンをByteArrayOutputStreamに抽出してください。コンテンツバイトをハックしたら、適切なコンテンツタイプとエンコーディングパラメータを使用してByteArrayEntityインスタンスに変換します。

これは面倒です...

関連する問題