Форум программистов, компьютерный форум CyberForum.ru

Программирование Windows Phone

Войти
Регистрация
Восстановить пароль
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
jenokizm
18 / 34 / 10
Регистрация: 27.03.2014
Сообщений: 683
#1

Переписать код с WP8 на WindowsPhone 8.1 - Windows Phone

06.07.2014, 13:01. Просмотров 1830. Ответов 6
Метки нет (Все метки)

Есть такой код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
  
private string GetEasylabViews()
{
string url = "http://easylab.net.ua";
string html = string.Empty;
string pattern = "Просмотров  - (.*)";
HttpWebRequest myRequest = (HttpWebRequest)HttpWebRequest.Create(url);
HttpWebResponse myResponse = (HttpWebResponse)myRequest.GetResponse();
StreamReader sr = new StreamReader(myResponse.GetResponseStream(),Encoding.GetEncoding(1251));
html = sr.ReadToEnd();
Match res;
res = Regex.Match(html, pattern);
return res.Groups[1].ToString();
}
на компе работает, а на мобиле нет(. Возмущаюсь, почему язык одинаковый а использовать на различных платформах его не могу( как не пробывал(

Добавлено через 59 минут
P.S. еще имеется такой код:
C#
1
2
3
4
5
6
private async Task<HttpResponseMessage> RetrievePage(string pageURL)
        {
            var client = new HttpClient();
            var result = await client.GetAsync(pageURL);
            return result;
        }
Вызывал вот так:
C#
1
html = RetrievePage(url).Result.Content.ToString();
В итоге мобила выснет(
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.07.2014, 13:01
Здравствуйте! Я подобрал для вас темы с ответами на вопрос Переписать код с WP8 на WindowsPhone 8.1 (Windows Phone):

Будет ли работать приложение WP8.1 на WP8 и WP10? - Windows Phone
Будет ли работать приложение WP8.1 на WP8 и WP10???

Потоковое воспроизведение аудио в WP8/WP8.1 - Windows Phone
Столкнулся с проблемкой. Требуется реализовать воспроизведение онлайн аудиопотока, но по этой теме не могу найти материал. То, что нашел и...

WindowsPhone - Windows Phone
Подскажите пожалуйста,какой элемент из &quot;панели элементов&quot; в VisualStudio 2015 нужно выбрать, чтобы в то время как мы пишем, например номер...

Что нужно для разработки под WindowsPhone? - Windows Phone
Всем привет. Очень интересует разработка под WindowsPhone. Хорошо знаю c#, wpf, сам .net. Что нужно для разработки, тестирования и...

Бегун vs WP8/8.1 - Windows Phone
Добрый день! У меня есть WP 8 приложение в Marketplace, и я хочу интегрировать в него рекламу. Смотрю в сторону Wapstart и Бегун. С...

Бот на WP8 - Windows Phone
Всем привет! В программировании на Windows Phone 8 я новичок, кодю в основном на Delphi. Но возник такой вопрос, реально ли на WP8 написать...

Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
A4Tech_Man
51 / 51 / 7
Регистрация: 23.05.2013
Сообщений: 473
06.07.2014, 15:02 #2
дело в том, что в wp 8.1 все сделано через асинхронные методы, твой код для компа хорош, но на мобиле по другому немножко. Если английский понимаешь то вот смотри тут примеры http://social.msdn.microsoft.com/for...indows-phone-8 Если не поймешь пиши.
jenokizm
18 / 34 / 10
Регистрация: 27.03.2014
Сообщений: 683
06.07.2014, 19:02  [ТС] #3
Зиннур, спс за ссылку. Я примерно так и догадался, но вопрос в том как далее получить код страницы в строку.....
Отбросим твою ссылку, и вот более короткий пример:
C#
1
2
3
4
var httpClient = new HttpClient();
            var httpResponseMessage = httpClient.GetAsync("http://google.com").Result;
            string html = httpResponseMessage.Content.Headers.ToString();
            string html2 = httpResponseMessage.Content.Headers.ContentLength.ToString();
как видишь таким образом в html мне удалось получить заголовок, а в html2 его длину. Однако если можно получить заголовок, то и весь код страницы? но как?
я предположил вот так:
C#
1
string html3 = httpResponseMessage.Content.ReadAsStringAsync().ToString();
но эта догадка не отработала( не знаю че делать(
A4Tech_Man
51 / 51 / 7
Регистрация: 23.05.2013
Сообщений: 473
06.07.2014, 21:06 #4
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
 using (var client = new HttpClient())
            {
                 var requestedMessage = new HttpRequestMessage(HttpMethod.Get,imageLink);                 
                 var response = await client.SendAsync(requestedMessage);
                 //загрузка изображения
                 imgData = response.Content.ReadAsByteArrayAsync().Result;
 
                 requestedMessage = new HttpRequestMessage(HttpMethod.Get, link);
                 //Загрузка html разметки
                 response = await client.SendAsync(requestedMessage);
 
                 Stream res = response.Content.ReadAsStreamAsync().Result;
                 //Запись в поток
                 streamReader = new StreamReader(res, Encoding.UTF8);                
                 
            }
            //Окончательный результат готовый для дальнейшей работы
            string text = streamReader.ReadToEnd();
Добавлено через 6 минут
и еще почитай про асинхронные методы или хотябы про TPL
jenokizm
18 / 34 / 10
Регистрация: 27.03.2014
Сообщений: 683
07.07.2014, 14:38  [ТС] #5
Зиннур, вау, вот оно как...) спс) даже загрузка картинки есть) возможно в будущем тоже пригодится
вот замутил окончательный метод для получения только кода страницы:
C#
1
2
3
4
5
6
7
8
9
private string GetHtmlCode(string url)
        {
            var httpClient = new HttpClient();
            var httpResponseMessage = httpClient.GetAsync(url).Result;         
            Stream res = httpResponseMessage.Content.ReadAsStreamAsync().Result;
            //Запись в поток
            StreamReader reader = new StreamReader(res, Encoding.UTF8);
            return reader.ReadToEnd();
        }
Проблема решена!
beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
19.11.2014, 19:38 #6
Попробуем оптимизировать итоговый метод:
C#
1
2
3
4
5
6
async Task<string> GetWebData(string geturl)
        {
            HttpClient client = new HttpClient();
            string ResponceResult = await client.GetStringAsync(new Uri(geturl));
            return ResponceResult;
        }
Единственно может выскакивать
Первый этап обработки исключения типа "System.ArgumentException" в mscorlib.ni.dll

Дополнительные сведения: Use of undefined keyword value 1 for event TaskScheduled.
Но если ее игнорировать, то проблем не возникает.
jenokizm
18 / 34 / 10
Регистрация: 27.03.2014
Сообщений: 683
22.02.2015, 13:28  [ТС] #7
Upd1: если кто наткнется на эту тему, то ищите здесь наиболее оптимальные решения (без всяких исключений)
Загрузить содержимое web-страницы
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2015, 13:28
Привет! Вот еще темы с ответами:

Низкоуровневое программирование WP8 - Windows Phone
Всем привет. Интересует такой вопрос - предоставляет ли WP8 API к низкоуровневым функциям системы? Конкретно интересуют функции работы с...

Работа с Map в WP8.1 - Windows Phone
Всем привет! Нужна помощь. Никак не найду инфы, как писать что-то на картах или рисовать изначально заданные фигуры по заранее заданным...

BackgroundAudioPlayer и StorageFile на WP8.1 C# - Windows Phone
Написал плеер под WP 8.1, осталось реализовать фоновый агент, но.. Как воспроизвести трек типа StorageFile с помощью...

Работа с файлами WP8.1 - Windows Phone
Интересно получается... В MS VS 2013 запускаю проект (WP8.1 C#&amp;XAML) - в качестве эмулятора реальный телефон с WP8.1. Приложение...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Yandex
Объявления
22.02.2015, 13:28
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru