C# 如何使用visual 2013在telegrambot中处理此错误?

C# 如何使用visual 2013在telegrambot中处理此错误?,c#,asp.net,webforms,telegram-bot,C#,Asp.net,Webforms,Telegram Bot,当用户端通过webform请求bot时,我希望通过bot电报响应任何消息,但是当rs.message的值为null时,程序错误 错误: BotTelegramWeb.dll中发生“System.NullReferenceException”类型的异常,但未在用户代码中处理 C#2013年更新3 网络表单2013更新3 摘要代码: using System; using System.Collections.Generic; using System.Linq; using System.Web;

当用户端通过webform请求bot时,我希望通过bot电报响应任何消息,但是当rs.message的值为null时,程序错误

错误:

BotTelegramWeb.dll中发生“System.NullReferenceException”类型的异常,但未在用户代码中处理

C#2013年更新3 网络表单2013更新3

摘要代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using Telegram.Bot;
using Telegram.Bot.Types;
using Telegram.Bot.Helpers;
using System.IO;
using Newtonsoft.Json;
using System.Net;


namespace BotTelegramWeb
{
    public partial class TaktopBot : System.Web.UI.Page
    {
        //Api bot = new Api("Token");
        Telegram.Bot.TelegramBotClient Bot = new Telegram.Bot.TelegramBotClient("Token");


        public class mydata
        {
            public result[] result;
        }
        public class result
        {
            public int update_id { get; set; }
            public message message { get; set; }
        }
        public class message
        {
            public int message_id { get; set; }
            public message_from from { get; set; }
            public message_chat chat { get; set; }
            public int date { get; set; }
            public string text { get; set; }
        }
        public class message_from
        {
            public int ind { get; set; }
            public string first_name { get; set; }
            public string username { get; set; }
        }
        public class message_chat
        {
            public int id { get; set; }
            public string first_name { get; set; }
            public string username { get; set; }
        }




        public static void SendMessage(string chat_id, string message)
        {
            WebRequest req = WebRequest.Create("https://api.telegram.org/Token/sendMessage?chat_id=@BestLaptopBuyTest&text=123");
            req.UseDefaultCredentials = true;

            var result = req.GetResponse();
            req.Abort();
        }


        protected void Page_Load(object sender, EventArgs e)
        {



            WebRequest req = WebRequest.Create("https://api.telegram.org/bot" + "Token" + "/getUpdates");
            req.UseDefaultCredentials = true;
            WebResponse resp = req.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader sr = new StreamReader(stream);
            string s = sr.ReadToEnd();
            sr.Close();
            var jobject = Newtonsoft.Json.Linq.JObject.Parse(s);
            mydata gg = JsonConvert.DeserializeObject<mydata>(jobject.ToString());
            List<result> results = new List<result>();
            foreach (result rs in gg.result)
            {
                results.Add(rs);
                SendMessage(rs.message.chat.id.ToString(), "hello" + " " + "Dear" + rs.message.chat.first_name);
            }

        }   
    }
}
请尝试以下代码

            int Offset = 0 ;
            WebRequest req = WebRequest.Create("https://api.telegram.org/bot" + "Token" + "/getUpdates?offset=" + Offset;);
            req.UseDefaultCredentials = true;
            WebResponse resp = req.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader sr = new StreamReader(stream);
            string s = sr.ReadToEnd();
            sr.Close();
            var jobject = Newtonsoft.Json.Linq.JObject.Parse(s);
            mydata gg = JsonConvert.DeserializeObject<mydata>(jobject.ToString());
            List<result> results = new List<result>();
            foreach (result rs in gg.result)
            {
                results.Add(rs);
                SendMessage(rs.message.chat.id.ToString(), "hello" + " " + "Dear" + rs.message.chat.first_name);
            }
int Offset=0;
WebRequest req=WebRequest.Create(“https://api.telegram.org/bot“+”标记“+”/getUpdates?offset=“+offset;”);
req.UseDefaultCredentials=true;
WebResponse resp=req.GetResponse();
Stream=resp.GetResponseStream();
StreamReader sr=新的StreamReader(流);
字符串s=sr.ReadToEnd();
高级关闭();
var jobject=Newtonsoft.Json.Linq.jobject.Parse;
mydata gg=JsonConvert.DeserializeObject(jobject.ToString());
列表结果=新列表();
foreach(聚合结果中的结果)
{
结果:添加(rs);
SendMessage(rs.message.chat.id.ToString(),“你好”+“亲爱的”+rs.message.chat.first_name);
}
1.仅新更新的偏移量。 2.本地测试后使用的webhook。
3.对于跳过null,请使用并测试callbackQuery。

谢谢您的回答。测试此代码,但是(bottelegrameb.TaktopBot.message.Equals(rs,null))始终为false,即使rs.message为null。谢谢,这对于偏移量是可以的。您知道更新对象可以有多种类型吗?看不到如何解析代码中的channel_post对象,所以它肯定为null,所以channel post为null?!!!你看到了吗?@anatol这是vs 2015的运行示例?
            int Offset = 0 ;
            WebRequest req = WebRequest.Create("https://api.telegram.org/bot" + "Token" + "/getUpdates?offset=" + Offset;);
            req.UseDefaultCredentials = true;
            WebResponse resp = req.GetResponse();
            Stream stream = resp.GetResponseStream();
            StreamReader sr = new StreamReader(stream);
            string s = sr.ReadToEnd();
            sr.Close();
            var jobject = Newtonsoft.Json.Linq.JObject.Parse(s);
            mydata gg = JsonConvert.DeserializeObject<mydata>(jobject.ToString());
            List<result> results = new List<result>();
            foreach (result rs in gg.result)
            {
                results.Add(rs);
                SendMessage(rs.message.chat.id.ToString(), "hello" + " " + "Dear" + rs.message.chat.first_name);
            }