2017-06-29 64 views
0

我正在使用c#。我试过httplistener,它的工作原理。如果我从小提琴手发送帖子,我的控制台会收到数据。但是,如果我尝试从远程服务器发布或使用任何联机工具,则会失败。我的目标是让控制台应用程序运行并侦听由第三方服务器发送的任何数据。有没有办法在控制台应用程序中处理http post请求?

这里是我如何设置插座:

listener.Prefixes.Add("localhost:12345/"); 
+0

你绑定什么IP地址? – BradleyDotNET

+0

以下是我正在尝试的代码 - – user3299927

+0

您可以添加更多详细信息而不仅仅是代码吗?你有什么尝试?你发现了这个问题吗?另请阅读[mcve] – vendettamit

回答

0

当您绑定插座时同时提供IP地址和端口。当您连接到套接字时,您必须提供它在上监听的IP和端口

如此绑定到localhost在客户端程序运行在同一设备上时效果很好;但当它在别的地方时根本不工作。你需要绑定到你的外部IP(打“我的IP是什么”似乎工作得很好);或通过使用0.0.0.0绑定到全部地址;某些库(包括C#)将允许您仅使用*作为IP地址。

listener.Prefixes.Add("*:12345/"); 
+0

我刚试过用hurl.it.我不再收到“内部严重错误”。该请求正在超时。因为我无法编辑问题,所以我会在答案部分发布我的代码。谢谢 – user3299927

+0

var listener = new HttpListener(); listener.Prefixes.Add(“http:// *:63703 /”); Console.WriteLine(“HttpProcessor has started and accepted connections ...........”); listener.Start(); (true) { HttpListenerContext contextData = listener.GetContext(); var rdr = new StreamReader(contextData.Request.InputStream,contextData.Request.ContentEncoding); string stringData = rdr.ReadToEnd(); Console.WriteLine(“来自httpRequest的数据:{0}”,stringData); } – user3299927

+0

@ user3299927你可以随时编辑你的问题....不能帮你超时;检查你的防火墙? – BradleyDotNET

相关问题