2009-05-29 29 views
2

我想從我的黑莓應用程序發送一個字節數組到.NET webservice(asmx)。從黑莓傳遞字節數組到.NET Webservice

我正在使用Sun Java Wireless Toolkit(WTK)2.5.2來生成在黑莓解決方案中使用的Web服務存根。 WTK項目設置使用JSR 172規範生成存根。

我創建使用.NET 2005,使用下面的方法的web服務:

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

我生成這個Web服務的WSDL的存根,但我收到:「錯誤:發現未知的簡單類型:字節[]」。我已經使用了這種方法來生成存根,並且我之前沒有收到任何錯誤,並且授予所有輸入變量都是簡單的類型,但是我用它來返回自定義對象的數組。當我檢查WSDL文件時,類型是base64Binary。

有什麼我可以使用比字節數組傳遞數據?還是有某種設置,我錯過了讓web服務把它作爲一個字節數組?

回答

4

要做的最好的事情可能只是將參數指定爲字符串。 Base64是二進制數據的ASCII表示。

3

你已經用String而不是byte []聲明瞭你的方法。 比你可以在客戶端使用以下代碼片段:

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