要解决API请求失败的问题并使用Webrequest返回失败的信息,可以使用以下代码示例:
using System;
using System.Net;
public class Program
{
public static void Main(string[] args)
{
string apiUrl = "https://api.example.com/endpoint";
try
{
// 创建Web请求对象
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(apiUrl);
request.Method = "GET";
// 发送请求并获取响应
using (HttpWebResponse response = (HttpWebResponse)request.GetResponse())
{
// 检查响应状态码
if (response.StatusCode == HttpStatusCode.OK)
{
// 请求成功,处理响应数据
// ...
}
else
{
// 请求失败,获取失败信息
Console.WriteLine("API请求失败,状态码:" + response.StatusCode);
}
}
}
catch (WebException ex)
{
// 请求发生异常,获取异常信息
if (ex.Response is HttpWebResponse errorResponse)
{
Console.WriteLine("API请求失败,状态码:" + errorResponse.StatusCode);
}
else
{
Console.WriteLine("API请求失败,发生异常:" + ex.Message);
}
}
catch (Exception ex)
{
Console.WriteLine("API请求失败,发生异常:" + ex.Message);
}
}
}
在上面的代码示例中,我们首先创建了一个Web请求对象,并设置了请求的URL和请求方法。然后,我们发送请求并获取响应。在获取响应后,我们检查响应的状态码。如果状态码为200(表示请求成功),则可以处理响应数据。如果状态码不是200,则认为请求失败,并输出失败信息。
如果在发送请求或获取响应过程中发生异常,我们使用try-catch块来捕获异常,并输出相应的错误信息。如果异常是WebException类型,并且异常的响应是HttpWebResponse类型,我们可以从响应中获取状态码。否则,我们只能输出异常的消息。
请注意,以上代码示例仅是一个基本的示例,实际上在处理API请求时可能还需要进行其他操作,如处理响应数据、添加请求头、设置超时等。具体的操作可能因实际需求而有所不同。
上一篇:API请求缺失有效密钥。