【发布时间】:2020-09-18 18:12:29
【问题描述】:
我正在尝试从 discord webhook 下载字符串 :("https://discordapp.com/api/webhooks/704770710509453432/GdR4absQHKDKjUiNMpw3aIpX2tx-9Z7nmPE2Sn3TUkQDM12zUczaV-m80orh7WGVzvGK")
当我正常打开网站时,浏览器字符串是:{"message": "Unknown Webhook", "code": 10015}
但是当我使用 WebClient 执行此操作时:
WebClient wc = new WebClient();
string site = "https://discordapp.com/api/webhooks/704770710509453432/GdR4absQHKDKjUiNMpw3aIpX2tx-9Z7nmPE2Sn3TUkQDM12zUczaV-m80orh7WGVzvGK";
string x = wc.DownloadString(site);
它给出“404 错误”。有没有办法用 c# 获取 {"message": "Unknown Webhook", "code": 10015} 字符串?
【问题讨论】:
-
404错误是找不到页面。您使用的是 https(安全),因此可能是 SSL/TLS 问题。查找错误的最佳方法是使用像wireshark 或fiddler 这样的嗅探器。比较第一个请求中的标头与无效的标头。 c# 中的默认标头与 webhook 不同。修改 c# 中的标头,使它们看起来与工作中的 webhol 完全一样。
-
即使使用 WebBrowser,您也会获得
404StatusCode。 WebBrowser 所做的你没有做的是读取[WebException].Response对象返回的响应流。您可以使用 StreamReader 读取该流。在这种情况下,您需要使用 HttpWebRequest 或 HttpClient。捕获 WebException(无论如何它是强制性的)并使用[StreamReader].ReadToEnd()读取响应对象流。你会得到你的 json 响应,就像你在 WebBrowser 中看到的那样。
标签: c# http-status-code-404 discord webclient downloadstring