#.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