J'ai une URL (URL pour le flux en direct du client) qui, lorsque je frappe dans le navigateur, renvoie la réponse xml. J'ai enregistré cela dans un fichier texte, sa taille est de 8 Mo.
maintenant mon problème est que je dois enregistrer cette réponse dans un fichier xml sur le lecteur du serveur. à partir de là, je vais insérer cela dans la base de données. et la demande doit être effectuée à l'aide de code à l'aide de la bibliothèque http-client ou rest-sharp de c # .net 4.5
Je ne sais pas quoi faire pour le cas ci-dessus. n'importe quel corps peut-il me suggérer quelque chose
Avec RestSharp, c'est juste là dans le readme :
var client = new RestClient("http://example.com");
client.DownloadData(request).SaveAs(path);
Avec HttpClient
, c'est un peu plus compliqué. Jetez un oeil à ce billet de blog .
Une autre option est Flurl.Http (avertissement: je suis l'auteur). Il utilise HttpClient
sous le capot et fournit une interface fluide et de nombreuses méthodes d'aide pratiques, notamment:
await "http://example.com".DownloadFileAsync(folderPath, "foo.xml");
Obtenez-le sur NuGet .
Il semble que SaveAs ait été abandonné. Vous pouvez essayer ceci
var client = new RestClient("http://example.com")
byte[] response = client.DownloadData(request);
File.WriteAllBytes(SAVE_PATH, response);
Si vous souhaitez une version asynchrone
var request = new RestRequest("/resource/5", Method.GET);
var client = new RestClient("http://example.com")
var response = await client.ExecuteTaskAsync(request);
if (response.StatusCode != HttpStatusCode.OK)
throw new Exception($"Unable to download file");
response.RawBytes.SaveAs(path);