目标:当某个动作发生时,此代码将执行发送更新到Webhook所指的不一致服务器。这是用C#编写的
问题:事件将触发,但不会显示任何消息。我已经用StringUpload尝试了WebClient,但没有成功。
HttpClient client = new HttpClient();
Dictionary<string, string> discordToPost = new Dictionary<string, string>();
discordToPost.Add("content", "Hello World");
var content = new FormUrlEncodedContent(discordToPost);
Uri webhook = new Uri("webhook goes here");
client.PostAsync(webhook, content);
当我在python 3中执行完全相同的任务时,我找到了成功。在C#中我忘记了一个步骤吗?任何帮助,我们将不胜感激。
import requests
import sys
discord_webhook = 'webhook goes here'
message = { "content" : "Hello World" }
requests.post( discord_webhook, data = message }
答案 0 :(得分:0)
我的假设是您的代码全部都在主体中,并且您发布的所有内容都是您所拥有的。话虽这么说,因为您正在调用异步方法而不是等待它完成程序,所以在完整的发布请求完成之前终止。在您发布的两个代码示例python / C#中,唯一的区别是请求库不是异步的,因此在处理HttpClient时需要考虑到这一点。
要检查实际上是否是问题所在,请尝试将最后一行代码更改为:
var res = client.PostAsync(webhook, content).Result;
//If you want to check result value
if(res.IsSuccessStatusCode){
Console.WriteLine("Posted message!");
}