我的网络服务器中有一个 csv 文件。文件地址为 http://192.168.1.2/Folder/File.csv.
要访问该文件,我需要使用用户名和密码。
我希望可以将此文件复制到本地文件夹中。
我尝试使用此代码:
internal static async void GetFile()
{
try
{
HttpClientHandler handler = new HttpClientHandler();
handler.Credentials = new NetworkCredential("User", "123456");
HttpClient client = new HttpClient(handler);
var response = await client.GetAsync("http://192.168.1.2/Folder/File.csv");
}
catch(Exception ex)
{
Console.WriteLine(ex.Message);
Console.ReadKey();
}
}
但在控制台中我收到错误:“MyApplication.exe(进程 12345)退出,代码为 0”。
如果我在 catch 的第一行设置断点,代码不会获取该行,因此不会捕获异常。当我运行最后一行并调用 GetASync() 方法时,会发生错误。
如何访问 csv 文件?
谢谢。
您的代码没有遇到任何错误。正如帕纳吉奥蒂斯所说,你对响应没有做任何事情。
响应变量的类型是HttpResponseMessage。您可以通过访问 StatusCode 属性来检查状态。
var response = await client.GetAsync("http://192.168.1.2/Folder/File.csv");
System.Net.HttpStatusCode statusCode = response.StatusCode;
response.EnsureSuccessStatusCode(); // throws error if call was not successful
您可以通过将内容读取为字节数组来读取响应的内容(在本例中是一个文件)。
byte[] httpResponseMessageContent = await httpResponseMessage.Content.ReadAsByteArrayAsync();
使用此字节数组,您可以将其保存为本地文件或将其转换为base64以进行其他操作。