Вам также необходимо изменить строку примера, в которой для свойства Connection
установлено значение Close
.Закомментируйте эту строку (наряду с сохранением для свойства keep-alive значения true):
myHttpWebRequest2.Connection = "Close";
Вы сделаете это, и ваш пример должен работать нормально.
Что касается получения данных и использования HttpWebRequest
чтобы работать с этим, вы можете сделать это.Возвращенные данные не в формате JSON - они выглядят как прямой текст, и я предполагаю, что JavaScript анализирует их в Google.(Я не проверял JavaScript на странице Google Finance, но это мое предположение.)
Используя Fiddler, отклик с этого URL:
http://www.google.com/finance/getprices?q=.IXIC&x=INDEXNASDAQ&i=120&p=10m&f=d,c,v,o,h,l&df=cpct&auto=1&ts=1307994768643
выглядиткак это:
EXCHANGE%3DINDEXNASDAQ
MARKET_OPEN_MINUTE=570
MARKET_CLOSE_MINUTE=960
INTERVAL=120
COLUMNS=DATE,CLOSE,HIGH,LOW,OPEN,VOLUME
DATA=
TIMEZONE_OFFSET=-240
a1307994120,2641.12,2641.12,2639.96,2640.01,0
1,2638.76,2642.14,2638.76,2641.13,0
2,2638.95,2640.54,2638.74,2638.79,0
3,2639.85,2640.01,2638.08,2638.95,0
4,2640.07,2640.87,2639.31,2639.88,0
5,2640.31,2640.48,2639.42,2640.08,0
6,2641.09,2641.09,2640.3,2640.31,0
Немного загадочно, но вы можете видеть, как линия COLUMNS совпадает с данными внизу.Кроме того, параметр строки запроса f
, по-видимому, указывает, какие столбцы нужно вернуть (d = дата, c = закрыть, v = объем, o = открыть, h = высокий, l = низкий).
EDIT : Я должен упомянуть, что использованный мной URL-адрес отправляется со страницы финансового графика для получения обновленных данных - этот URL-адрес запрашивается через регулярные промежутки времени с помощью такого инструмента, как Fiddler.Данные ответов, которые я вставил выше, также выводятся образцом приложения из MSDN.
Но комментируя, что одна строка в примере из MSDN и небольшая возня с Fiddler должны дать вам данные и подсказки, которые вам нужныпроанализируйте результат, полученный с этого URL.
Надеюсь, это поможет!
PS - моя первая строка в моем модифицированном примере MSDN выглядит так:
HttpWebRequest myHttpWebRequest1 = (HttpWebRequest)WebRequest.Create("http://www.google.com/finance/getprices?q=.IXIC&x=INDEXNASDAQ&i=120&p=10m&f=d,c,v,o,h,l&df=cpct&auto=1&ts=1307994768643");
Iсделал аналогичное изменение с другим WebRequest
вызовом чуть ниже в примере ... кроме этого, я ничего не изменил в этом примере.