J'ai écrit un petit grattoir qui est censé ouvrir une connexion à un script PHP sur un serveur distant via HTTP et pomper du code XML qu'il trouve dans un fichier local.Problème avec la récupération de XML via HTTP et l'écriture dans le fichier
Pas exactement la science des fusées, je sais.
Le code ci-dessous est le racloir dans son intégralité (nettoyé et anonymisé). Ce code fonctionne bien, sauf pour un petit détail, il semble que peu importe la taille du fichier XML (1 Mo ou 7 Mo), le fichier XML résultant manque toujours une petite section à la fin (600 à 800 caractères)).
Notes:
Si j'ouvre la page php dans Firefox - je reçois tout le doc pas de problème.
Si je lance wireshark et exécute le programme ci-dessous, je vois l'ensemble du doc transféré à travers le fil, mais pas écrit dans le fichier.
using System;
using System.IO;
using System.Collections.Generic;
using System.Text;
namespace myNameSpace
{
class Program
{
static void Main(string[] args)
{
Console.Write("BEGIN TRANSMISSION\n");
writeXMLtoFile();
Console.Write("END TRANSMISSION\n");
}
public static void writeXMLtoFile()
{
String url = "http://somevalidurl.com/dataPage.php?lotsofpars=true";
TextWriter tw = new StreamWriter("xml\\myFile.xml");
tw.Write(ScreenScrape(url));
Console.Write(" ... DONE\n");
tw.Close();
}
public static string ScreenScrape(string url)
{
System.Net.WebRequest request = System.Net.WebRequest.Create(url);
using (System.Net.WebResponse response = request.GetResponse())
{
using (System.IO.StreamReader reader = new System.IO.StreamReader(response.GetResponseStream()))
{
return reader.ReadToEnd();
}
}
}
}
}
devrais-je utiliser un autre écrivain? J'ai essayé à la fois TextWriter et StreamWriter pour le même effet.
salutations de l'Islande,
Gzur
** facepalm ** Vous êtes un génie. Fonctionne comme un charme sanglant. Merci un paquet. Merci beaucoup – gzzzur
Pas d'inquiétude. Content de sauver quelqu'un. WebClient.DownloadFile en est un dont je me souviendrai aussi si je n'ai pas besoin de valider le XML du tout. –