【问题标题】:Passing Byte array from Blackberry to .NET Webservice将 Byte 数组从 Blackberry 传递到 .NET Webservice
【发布时间】:2009-05-29 12:35:27
【问题描述】:

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

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

【问题讨论】:

    标签: web-services blackberry asmx java-wireless-toolkit jsr172


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您可以使用 String 而不是 byte[] 来声明您的方法。 您可以在客户端使用以下 sn-p:

      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);
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2019-07-01
        • 1970-01-01
        • 1970-01-01
        • 2013-06-08
        相关资源
        最近更新 更多