Передача байтового массива из Blackberry в .NET Webservice - PullRequest
2 голосов
/ 29 мая 2009

Я пытаюсь отправить байтовый массив из моего приложения Blackberry в веб-сервис .NET (asmx).

Я использую Sun Java Wireless Toolkit (WTK) 2.5.2 для создания заглушек веб-сервиса для использования в решении Blackberry. Настройки проекта WTK производят заглушки, используя спецификацию JSR 172.

Я создал Webservice с использованием .NET 2005, используя следующий метод:

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

Я создаю заглушки из WSDL этого веб-сервиса, но получаю: «ошибка: Обнаружен неизвестный простой тип: byte []». Я использовал этот метод генерации заглушек и раньше не получал никаких ошибок, при условии, что все входные переменные были простыми типами, но я использовал это для возврата массивов пользовательских объектов. Когда я проверяю файл WSDL, тип base64Binary.

Могу ли я использовать что-то еще, кроме байтового массива, для передачи данных? Или есть какие-то настройки, которые мне не хватает, чтобы веб-сервис мог принимать его как байтовый массив?

Ответы [ 2 ]

4 голосов
/ 01 июня 2009

Лучше всего просто указать параметр в виде строки. Base64 - ASCII-представление двоичных данных.

3 голосов
/ 17 июля 2009

у вас есть объявление вашего метода с 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);
...