2017-06-29 65 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

相關問題