2

我正在尝试将一个字节数组从我的 Blackberry 应用程序发送到 .NET webservice (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 生成存根,但我收到:“错误:找到未知的简单类型:字节 []”。我使用过这种生成存根的方法,之前没有收到任何错误,因为所有输入变量都是简单类型,但我用它来返回自定义对象的数组。当我检查 WSDL 文件时,类型是 base64Binary。

除了字节数组之外,还有什么我可以用来传递数据的吗?还是我缺少某种设置以允许 Web 服务将其作为字节数组?

4

2 回答 2

4

最好的办法可能只是将参数指定为字符串。 Base64是二进制数据的 ASCII 表示。

于 2009-05-31T23:42:25.647 回答
3

你有用字符串而不是字节[]声明你的方法。您可以在客户端使用以下代码段:

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 回答