マルチパートリクエストを作成したとします。ここで、コンテンツ ID をアドバタイズする必要があります。以下は、マルチパート リクエストを作成するために使用しようとしていたコードです。
MultipartEntity mpEntity = new MultipartEntity();
StringBody body;
try
{
body = new StringBody( xml, "application/xml", Charset.forName( "UTF-8" ) );
byte[] data = getBytesFromFile( image );
ByteArrayBody bab = new ByteArrayBody( data, "image/jpeg", "test_image_cid" );
mpEntity.addPart( "body", body );
mpEntity.addPart( "test_image_cid", bab );
} catch ( UnsupportedEncodingException e )
{
e.printStackTrace();
}
HttpPost request = new HttpPost("http://10.1.1.1");
request.addHeader( "Authorization", authorization_header_values );
request.addHeader( "Content-Type", "Multipart/Related" );
request.setEntity( mpEntity );
return request;
これは、呼び出している Web サービスが要求したものです。
<?xml version="1.0" encoding="utf-8"?> <request method="receipt.create">
<receipt>
<expense_id>1</expense_id> <!-- id of expense -->
<image>cid:xxxxxxxxxxxxx</image> <!-- content-id used on the related binary content -->
</receipt>
</request>
これは、デバッグのためにサーバーから返されたものです。
POST / HTTP/1.1 承認: OAuth realm=""、oauth_version="1.0"、oauth_consumer_key="key"、oauth_token="token"、oauth_timestamp="1358197676614"、oauth_nonce="1111111"、oauth_signature_method="PLAINTEXT"、oauth_signature ="署名" Content-Type: Multipart/Related User-Agent: エージェント Content-Length: 2336363 Host: 10.1.1.1 Connection: Keep-Alive
--HPeiFlrswQmM8Mi1uoWpzJRfrnp3AMtZjpCdt コンテンツの性質: フォーム データ。name="body" Content-Type: アプリケーション/xml; charset=UTF-8 Content-Transfer-Encoding: 8bit
<?xml version='1.0' encoding='UTF-8' ?>
<request method="receipt.create">
<receipt>
<expense_id>979</expense_id>
<image>cid:test_image_cid</image>
</receipt>
</request>
--HPeiFlrswQmM8Mi1uoWpzJRfrnp3AMtZjpCdt コンテンツの性質: フォーム データ。name="test_image_cid"; filename="test_image_cid" Content-Type: image/jpeg Content-Transfer-Encoding: バイナリ
このリクエストに Content-ID を追加する方法を見つけようとしています。この呼び出しに欠けている明らかなものはありますか? このリクエストを作成する別の方法はありますか? アドバイスをありがとう!