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

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

Восстановить пароль Регистрация
 
Рейтинг: Рейтинг темы: голосов - 15, средняя оценка - 4.67
jenokizm
14 / 30 / 8
Регистрация: 27.03.2014
Сообщений: 598
06.07.2014, 13:01     Переписать код с WP8 на WindowsPhone 8.1 #1
Есть такой код:
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();
В итоге мобила выснет(
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
A4Tech_Man
 Аватар для A4Tech_Man
51 / 51 / 7
Регистрация: 23.05.2013
Сообщений: 463
06.07.2014, 15:02     Переписать код с WP8 на WindowsPhone 8.1 #2
дело в том, что в wp 8.1 все сделано через асинхронные методы, твой код для компа хорош, но на мобиле по другому немножко. Если английский понимаешь то вот смотри тут примеры http://social.msdn.microsoft.com/for...indows-phone-8 Если не поймешь пиши.
jenokizm
14 / 30 / 8
Регистрация: 27.03.2014
Сообщений: 598
06.07.2014, 19:02  [ТС]     Переписать код с WP8 на WindowsPhone 8.1 #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
 Аватар для A4Tech_Man
51 / 51 / 7
Регистрация: 23.05.2013
Сообщений: 463
06.07.2014, 21:06     Переписать код с WP8 на WindowsPhone 8.1 #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
14 / 30 / 8
Регистрация: 27.03.2014
Сообщений: 598
07.07.2014, 14:38  [ТС]     Переписать код с WP8 на WindowsPhone 8.1 #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
 Аватар для beats
98 / 36 / 4
Регистрация: 09.12.2012
Сообщений: 565
19.11.2014, 19:38     Переписать код с WP8 на WindowsPhone 8.1 #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.
Но если ее игнорировать, то проблем не возникает.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.02.2015, 13:28     Переписать код с WP8 на WindowsPhone 8.1
Еще ссылки по теме:

Windows Phone Проект под WP8.1
Windows Phone Работа с Map в WP8.1
Windows Phone BackgroundAudioPlayer и StorageFile на WP8.1 C#
Windows Phone Будет ли работать приложение WP8.1 на WP8 и WP10?
WindowsPhone Windows Phone

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

Или воспользуйтесь поиском по форуму:
jenokizm
14 / 30 / 8
Регистрация: 27.03.2014
Сообщений: 598
22.02.2015, 13:28  [ТС]     Переписать код с WP8 на WindowsPhone 8.1 #7
Upd1: если кто наткнется на эту тему, то ищите здесь наиболее оптимальные решения (без всяких исключений)
Загрузить содержимое web-страницы
Yandex
Объявления
22.02.2015, 13:28     Переписать код с WP8 на WindowsPhone 8.1
Ответ Создать тему
Опции темы

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