C# c HttpWebRequest 404,在对象上返回null,而不是整个列表

C# c HttpWebRequest 404,在对象上返回null,而不是整个列表,c#,object,null,httpwebrequest,http-status-code-404,C#,Object,Null,Httpwebrequest,Http Status Code 404,我有一个从Api链接检索Json值的代码。这将被反序列化并作为对象存储在列表中。然后使用此列表中的ID值从不同的Api链接检索其他Json值。只有这些Id可能不存在于第二个Api链接中。如果是这种情况,则显示的所有内容都是{text:no-soke-id},程序会因404错误而崩溃 代码如下: public RootObject objFromApi_idExistListings(string url) { HttpWebRequest request

我有一个从Api链接检索Json值的代码。这将被反序列化并作为对象存储在列表中。然后使用此列表中的ID值从不同的Api链接检索其他Json值。只有这些Id可能不存在于第二个Api链接中。如果是这种情况,则显示的所有内容都是{text:no-soke-id},程序会因404错误而崩溃

代码如下:

public RootObject objFromApi_idExistListings(string url)
        {

            HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url);

            try
            {
                WebResponse response = request.GetResponse();
                using (Stream responseStream = response.GetResponseStream())
                {
                    StreamReader reader = new StreamReader(responseStream, Encoding.UTF8);
                    var jsonReader = new JsonTextReader(reader);
                    var serializer = new JsonSerializer();
                    return serializer.Deserialize<RootObject>(jsonReader);
                }
            }
            catch (WebException)
            {
                return null;
            }
        }
当一个404被点击时,它将从那里返回所有空值。不仅是单个Api请求然后继续,整个列表都将返回null


我怎样才能让那个对象只返回null,而其他一切都继续。或者,如果该对象是404,只要代码可以继续运行并反序列化它必须处理的所有剩余Api链接,就不必返回null,那么我如何跳过该对象的整个生成过程。

如果存在404响应或200以外的任何响应,您可以使用类似的方法来退出

try
{
    HttpWebResponse response = (HttpWebResponse)request.GetResponse();
    if (response.StatusCode != System.Net.HttpStatusCode.OK) return null;
    //Continue by getting and parsing the response stream

它无法识别。状态码。我确实使用过System.Net;request.GetResponse;返回一个错误:无法将类型“System.Net.WebResponse”隐式转换为“System.Net.HttpWebResponse”第三次是否有效?我添加了显式投射。好吧,我知道你在做什么,但当它击中404时,它立即进入捕捉。这意味着它永远不会到达检查404的代码。另外,如果这是可行的,这会不会以同样的方式重新创建问题?听起来问题在于如何调用objFromApi_idExistListings方法及其返回值。你能给我们看看节目的那部分是什么样子吗?