Lea*_*ner 27 c# xml asp.net httpclient restsharp
我有一个URL(来自客户端的实时源的URL),当我在浏览器中点击时返回xml响应.我已将其保存在文本文件中,其大小为8 MB.
现在我的问题是我需要将此响应保存在服务器驱动器上的xml文件中.从那里我将在数据库中插入此.并且需要使用http-client或c#.net 4.5的rest-sharp库使用代码进行请求
我不确定我应该为上述情况做些什么.任何身体都能给我一些建议
Tod*_*ier 33
使用RestSharp,它就在自述文件中:
var client = new RestClient("http://example.com");
client.DownloadData(request).SaveAs(path);
Run Code Online (Sandbox Code Playgroud)
随着HttpClient,它涉及更多.看看这篇博客文章.
另一种选择是Flurl.Http(免责声明:我是作者).它使用HttpClient引擎盖,提供流畅的界面和许多方便的帮助方法,包括:
await "http://example.com".DownloadFileAsync(folderPath, "foo.xml");
Run Code Online (Sandbox Code Playgroud)
在NuGet上获取它.
小智 10
似乎SaveAs已经停产.你可以试试这个
var client = new RestClient("http://example.com")
byte[] response = client.DownloadData(request);
File.WriteAllBytes(SAVE_PATH, response);
Run Code Online (Sandbox Code Playgroud)
读取时不要将文件保留在内存中。直接写入磁盘。
var tempFile = Path.GetTempFileName();
using var writer = File.OpenWrite(tempFile);
var client = new RestClient(baseUrl);
var request = new RestRequest("Assets/LargeFile.7z");
request.ResponseWriter = responseStream =>
{
using (responseStream)
{
responseStream.CopyTo(writer);
}
};
var response = client.DownloadData(request);
Run Code Online (Sandbox Code Playgroud)
从这里复制/sf/answers/4180442731/。
如果您想要异步版本
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);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
24222 次 |
| 最近记录: |