2

Blackberry アプリケーションから .NET Web サービス (asmx) にバイト配列を送信しようとしています。

Sun Java Wireless Toolkit (WTK) 2.5.2 を使用して、Blackberry ソリューション内で使用する Web サービス スタブを生成しています。WTK プロジェクト設定は、JSR 172 仕様を使用してスタブを生成しています。

次の方法を使用して、.NET 2005 を使用して Web サービスを作成しました。

[WebMethod]
public string UploadImage(byte[] Data, string Name)
{
  //do stuff
}

この Web サービスの WSDL からスタブを生成しますが、「エラー: 不明な単純型が見つかりました: byte[]」というメッセージが表示されます。私はスタブを生成するこの方法を使用しましたが、以前はエラーを受け取っていませんでした.すべての入力変数が単純な型であったことを認めましたが、これを使用してカスタムオブジェクトの配列を返しました. WSDL ファイルを確認すると、タイプは base64Binary です。

データを渡すためにバイト配列以外に使用できるものはありますか? または、Webサービスがバイト配列を取得できるようにするために欠落している設定がありますか?

4

2 に答える 2

4

おそらく最善の方法は、パラメーターを文字列として指定することです。 Base64は、バイナリ データの ASCII 表現です。

于 2009-05-31T23:42:25.647 に答える
3

byte[] の代わりに String を使用してメソッドを宣言します。クライアント側で次のスニペットを使用できます。

byte[] chunk = ...;
String data= Base64OutputStream.encodeAsString(chunk, 0, chunk.length, false, false);
UploadImage(data, name)

and on the server side you can use:

byte[] byteArray;
byteArray = Base64.decode(data);
于 2009-07-17T09:19:52.407 に答える