Vous devez également modifier la ligne de l'exemple qui définit le paramètre Connection
à la propriété Close
. Commentez cette ligne (et gardez la propriété keep-alive à true) :
myHttpWebRequest2.Connection = "Close";
Si vous faites cela, votre exemple devrait fonctionner correctement.
En ce qui concerne l'obtention des données et l'utilisation HttpWebRequest
pour travailler avec, vous pouvez le faire. Les données renvoyées ne sont pas du JSON - elles ressemblent à du texte normal et je suppose que le javascript de Google les analyse. (Je n'ai pas inspecté le javascript de la page de Google Finance, mais c'est ce que je pense).
En utilisant Fiddler, la réponse de cette 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
ressemble à ceci :
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
C'est un peu énigmatique, mais vous pouvez voir comment la ligne des COLONNES s'aligne sur les données en bas. De même, la ligne f
Le paramètre querystring semble indiquer les colonnes à retourner (d=date, c=close,v=volume,o=open,h=high,l=low).
EDIT : Je dois mentionner que l'URL que j'ai utilisée est envoyée depuis la page du graphique financier pour obtenir des données mises à jour - vous pouvez voir que cette URL est demandée à intervalles réguliers à l'aide d'un outil comme Fiddler. Les données de réponse que j'ai collées ci-dessus sont également produites par l'exemple d'application de MSDN.
Mais en commentant cette ligne dans l'exemple de MSDN et en manipulant un peu Fiddler, vous devriez obtenir les données et les indices dont vous avez besoin pour analyser le retour provenant de cette URL.
J'espère que cela vous aidera !
PS - ma première ligne dans mon exemple MSDN modifié ressemble à ceci :
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");
J'ai apporté une modification similaire à l'autre WebRequest
un peu plus loin dans l'exemple... à part cela, je n'ai rien changé d'autre dans l'exemple.