web-dev-qa-db-ja.com

restsharpを使用してファイルをダウンロードする方法

ブラウザでヒットするとxml応答を返すURL(クライアントからのライブフィードのURL)があります。これをテキストファイルに保存しました。サイズは8 MBです。

今私の問題は、サーバーのドライブ上のxmlファイルにこの応答を保存する必要があることです。そこからこれをデータベースに挿入します。リクエストは、c#.net 4.5のhttp-clientまたはrest-sharpライブラリを使用するコードを使用して行う必要があります

上記の場合にどうすればよいかわかりません。どんな体も私に何かを示唆できますか

24
Learner

RestSharpを使用すると、 readme にあります。

var client = new RestClient("http://example.com");
client.DownloadData(request).SaveAs(path);

HttpClientを使用すると、もう少し複雑になります。 このブログ投稿 をご覧ください。

別のオプションは Flurl.Http (免責事項:私が著者です)です。内部でHttpClientを使用し、流なインターフェイスと、次のような便利なヘルパーメソッドを多数提供します。

await "http://example.com".DownloadFileAsync(folderPath, "foo.xml");

NuGet で入手してください。

31
Todd Menier

SaveAsは廃止されたようです。これを試すことができます

var client = new RestClient("http://example.com")    
byte[] response = client.DownloadData(request);
File.WriteAllBytes(SAVE_PATH, response);
8

非同期バージョンが必要な場合

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);
2
Vitaly