在centos系统中运行一个简单的http后台,一直调试不通,折腾好久。我的架构是,腾讯云服务器安装的Centos系统,一个内网IP,一个外网IP地址,http服务监听在内网IP地址。
然后使用postman工具进行http测试,收到的应答抓包一直都是404,抓图截图如下:
Netcore总是无法获取到收到的http请求。
后来,通过研究,发现了Host字段,IP地址填写的是外网IP地址,但是实际上,我的监听是内网IP地址。
这里再增加一条内网的IP地址host,成功完成调试。
*****************************终于通了************************************
由于我使用的是HttpListener这个类进行的url监听,开始我设置的Url都是指定IP地址进行监听,如下:
foreach (var ip in listIp)
{
string strUrl = "http://" + ip + ":" + "8880/";
m_HttpListener.Prefixes.Add(strUrl);
LogHelper.Info("Prefixes ={0}", strUrl);
}
所以只能接收Host为指定IP的请求。
后面把URL改成通配符之后,成功可以接收到请求。
m_HttpListener.Prefixes.Add("http://+:8880/");