2

它现在对我来说是一个 grt 难题。我开发了一个产品,它使用多种语言实现,例如 C# Windows 应用程序、Titanium iOS 应用程序和一个 Java 应用程序和一个朋友团队。

我正在使用 ac# web 服务,它采用 datatype 参数byte[]。通过将其添加到服务参考中,我已经完成了我在 Windows 应用程序上的工作。

我的 Titanium 队友要求我为这个 Web 服务创建一些示例代码,而不是直接通过 url 使用服务引用,而是:

  • 使用soap 或http post 方法调用它。
  • 创建一个网络服务,他们将以简单的方式与钛一起使用
  • 关于如何将相同的 web 服务与钛一起使用的任何其他有用的想法

由于钛男孩现在对钛更新鲜,所以我必须做点什么,但我也被困住了,不知道如何向他推荐一些东西,所以我需要你的帮助。

4

2 回答 2

1

我建议您将二进制数据编码为 Base64 字符串并将其发送到您的 C# 服务。由于您使用的是 SOAP,这将是一个非常简单的解决方案。

于 2012-09-21T20:06:50.287 回答
0

只需使用内置的 Titanium 实用程序将您的数据编码为 base64:

// Encode your data
var data = Titanium.Utils.base64encode(dataToSendToWebService);

现在使用 HTTPClient 发送它:

var postDataTOServer = Ti.Network.createHTTPClient({
    onload : function(e) {
         // If the service returns successfully : true, or false
         var isUserAllowed = this.responseText; 
    },
    onerror : function(e) {
        // Web service failed for some reason
        Ti.API.info(this.responseText);
        Ti.API.info('webservice failed with message : ' + e.error);
    }
});

// POST
postDataTOServer.open('POST', 'http://yoursite.com/aspwebservice');

// you may have to change the content type depending on your service
// but this is the correct type for binary data
postDataTOServer.setRequestHeader("Content-Type", "application/octet-stream");

// This does a POST to server
postDataTOServer.send(data);
于 2012-09-22T14:51:59.677 回答