Загрузка файлов с устройства WP7 на веб-сервер с использованием веб-службы?

#.net #web-services #windows-phone-7

#.net #веб-службы #windows-phone-7

Вопрос:

Как загружать файлы с WP7 на веб-сервер с помощью веб-службы? Кроме того, когда файл находится там и обрабатывается, как вы можете загрузить обработанный файл обратно на устройство WP7?

Ответ №1:

Что ж, вы могли бы дать нам еще несколько подсказок о том, как работает ваш веб-сервис, это asmx, wcf, php, java? У него есть wsdl или вы используете REST?

В любом случае, я сделаю некоторые предположения, потому что, если у вас есть wsdl, вам нужно только добавить веб-ссылку и использовать ее. Если вам нужно написать свой собственный загрузчик, вы можете использовать, например, класс WebClient для отправки данных на ваш веб-сервис.

 // I assume you have the image into a stream called imageStream
// and that you provide your url into the serviceUri variable

WebClient client = new WebClient();

//here you indicate what to do when the stream is opened
client.OpenWriteCompleted  = (sender, e) =>
{
  //now write the data
  //in e.Result you have the destination stream

  byte[] buffer = new byte[32768];
  int readCount;

  while ((readCount = imageStream.Read(buffer, 0, buffer.Length)) != 0)
  {
    e.Result.Write(buffer, 0, readCount);
  }
  e.Result.Close();
  imageStream.Close();
};

 //and here the call that starts your async operation
 client.OpenWriteAsync(serviceUri);
  

Комментарии:

1. Извините, что не конкретизирую. В значительной степени я загружаю текстовые файлы. Является ли процесс относительно таким же?

2. @loyalpenguin Да, это не меняется, если это текстовый файл, вы просто создаете поток и транслируете его, но это зависит от того, как выполняется ваш веб-сервис. Работает ли это с GET или POST?

3. У меня получилось. Также предоставленный вами скрипт полезен для другой части. Спасибо за ваше время.

4. @Ankit вы используете WebClient, но с использованием метода UploadStringAsync: dot4pro.com/posting-data-to-the-web-from-windows-phone-7.html