【发布时间】:2016-11-17 21:42:22
【问题描述】:
我一直在制作一个机器人来接收来自 Ark: Survival Evolved 游戏服务器的通知并将它们发送到使用 Steam 聊天系统的玩家的 Steam 帐户!
好吧,一切都做得很好,没有问题,我使用从查询字符串发送的数据测试了我的工作,它可以工作并发送消息等。
但现在我使用游戏服务器检查,它不会工作。
问题似乎来自发送带有正文内容而不是查询字符串的 HTTP POST 请求,因为我的应用不会收到它们。
我已经做了很多例子来接收 POST 请求,但似乎没有工作, 我希望这里有人知道如何解决这个问题,我已经失去了所有希望,因为我已经为此工作了 5 个多小时,甚至在 C# SOChat 中询问它。
这些似乎都不起作用:
public void Post1(string key, ulong steamid, string notetitle, string message)
{
if (!Program.settings.UnSub.Contains(steamid))
{
SteamID SID = new SteamID(steamid);
Program.steamFriends.SendChatMessage(SID, EChatEntryType.ChatMsg, System.DateTime.UtcNow + " UTC ( GMT ) : " + notetitle);
Thread.Sleep(1000);
Program.steamFriends.SendChatMessage(SID, EChatEntryType.ChatMsg, message);
}
}
public void Post([FromBody]string key,[FromBody]ulong steamid,[FromBody]string notetitle,[FromBody]string message)
{
if (!Program.settings.UnSub.Contains(steamid))
{
SteamID SID = new SteamID(steamid);
Program.steamFriends.SendChatMessage(SID, EChatEntryType.ChatMsg, System.DateTime.UtcNow + " UTC ( GMT ) : " + notetitle);
Thread.Sleep(1000);
Program.steamFriends.SendChatMessage(SID, EChatEntryType.ChatMsg, message);
}
}
public class MyFormData
{
public string Data { get; set; }
}
public void Post([FromBody]MyFormData formData)
{
}
public void Post([FromBody]MyData formData)
{
}
public class MyData
{
public string key { get; set; }
public string steamid { get; set; }
public string message { get; set; }
public string notetitle { get; set; }
}
public void Post(string value)
{
}
public void Post1([FromBody]string value)
{
}
【问题讨论】:
-
当你说这不起作用时,你遇到了什么问题?
-
当游戏服务器发送 POST 时,我没有在应用程序上收到它。但有了 Fiddler,我可以确保正在制作 POST:prntscr.com/bswyme
-
啊,您的控制器中同时拥有所有这些
Post操作?这可能会触发 Web API,因为它不知道为该请求选择哪一个。 -
好的,我会尽快尝试这样做并再次逐个检查,一开始只是第一个,然后我一个接一个地添加 1 进行测试。
-
我不敢相信它真的有效!我只是照我做的,@MichaelDotKnox 也说过,但删除了所有其余的!它得到了修复....哇这么多时间花在这个上:D谢谢男人
标签: c# asp.net post owin self-hosting