0

ADB バインディングを使用して作成された axis2 クライアントがあります。この axis2 クライアントは WCF Web サービスと対話し、MTOM モードで XML 添付ファイルを送信します。生成される SOAP リクエストは次のとおりです。

POST http://xyz/mtom HTTP/1.1
MIME-Version: 1.0
Content-Type: multipart/related;
type="application/xop+xml";
start="<http://tempuri.org/0>";
boundary="uuid:0daa5c61-46d2-4fe1-9944-097b897367b4+id=1";
start-info="application/soap+xml"; 
action="http://blahblah/SendData"
Host: myserver.org
Content-Length: 22648
Expect: 100-continue
Accept-Encoding: gzip, deflate
Connection: Keep-Alive

--uuid:0daa5c61-46d2-4fe1-9944-097b897367b4+id=1
 Content-ID: <http://tempuri.org/0>

Content-Transfer-Encoding: バイナリ (以下) を Content-Transfer-Encoding: 8bit にするにはどうすればよいですか?

 Content-Transfer-Encoding: binary
 Content-Type: application/xop+xml;charset=utf-8;type="application/soap+xml"

 <s:Envelope><s:Body><SendData>...</SendData></s:Body></s:Envelope>
 --uuid:0daa5c61-46d2-4fe1-9944-097b897367b4+id=1
 Content-ID: <http://tempuri.org/1/634789954872318389>
 Content-Transfer-Encoding: binary
 Content-Type: application/octet-stream

 Serialized payload here
 --uuid:0daa5c61-46d2-4fe1-9944-097b897367b4+id=1--

また、1 つの mime_boundary はメインの SOAP エンベロープ用で、2 番目の mime_boundary は添付ファイル用だと思います

4

1 に答える 1

1

いいえ、これは不可能です。それには正当な理由があります。エンコーディングは次の8bitように定義されます。

CR および LF (それぞれコード 13 および 10) を含む 1 行あたり最大 998 オクテットは、CRLF 行末の一部としてのみ表示できます。

これは、 としてエンコードできないメッセージがあることを意味します8bit8bitAxis2 は、メッセージの書き込みを開始する前に、メッセージをエンコードできることを確認する必要があります。これにより、不要なオーバーヘッドが発生します。したがって、Axis2 は and のみをサポートしますbinarybase64これは、すべてのメッセージをエンコードできるためです (また、SOAP スタックでサポートされることが期待されます)。

とにかく、なぜそれを使いたいの8bitですか?

于 2012-09-15T07:13:40.457 に答える