我正在尝试创建API调用以从 azure data lake store 读取文件。但是我无法显示找到的特定文件的正确响应和错误,而且找不到。
我也可以连接azure数据湖并获取数据,正确使用try-catch
。请帮助我为c#
API提供正确的响应正文和响应代码。
try
{
string aa = GetItemInfo("/myfolder/subfolder/testfile.txt");
return new string[]
{
"Hello",
aa,
"World"
};
}
catch {
return new string[]
{
"Hello",
"World"
};
我的代码正在运行。由于我是C#上API调用的新手,我无法找到正确的方法来执行此操作。
答案 0 :(得分:2)
您必须创建以下
var responseMessage = new HttpResponseMessage>(errors,HttpStatusCode.BadRequest);
抛出新的HttpResponseException(responseMessage);
答案 1 :(得分:1)
导致例外的原因有很多。例如,网络问题或令牌已过期。为了显示找到的特定文件的正确响应和错误,我建议您在阅读项目信息之前检查路径是否存在。
public static bool ItemExist(string path)
{
return _adlsFileSystemClient.FileSystem.PathExists(accountName, path);
}
使用ItemExist方法检查路径是否存在的代码。
string path = "/myfolder/subfolder/testfile.txt";
if (ItemExist(path))
{
string aa = GetItemInfo(path);
return new string[]
{
"Hello",
aa,
"World"
};
}
else
{
var responseMessage = new HttpResponseMessage(HttpStatusCode.NotFound);
responseMessage.Content = new StringContent("The file path which you requested is not found");
throw new HttpResponseException(responseMessage);
}
对于其他意外的异常,我建议您在ASP.NET Web API中使用Global Error Handling。