Передача байтового массива из Blackberry в.NET Webservice

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

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

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

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

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

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

2 ответа

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

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