C# WebResponse 调用GetResponse()方法时报错:基础连接已经关闭: 连接被意外关闭。

今天在弄一个登陆方法时,由于请求的是测试服务器,要访问接口的登陆方法,但是在请求过程中, 

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);

 WebResponse response = request.GetResponse();;

response 请求报错:基础连接已经关闭: 连接被意外关闭。用postman请求登陆方法报错如下:

从字表意思是接口方法不允许方法,连接打不开。postman也无法请求。可参考https://blog.csdn.net/jiangyu1013/article/details/82120052

如果postman还是请求不到,请看如下原因:

针对这个问题,有以下几个可能:

1:在请求时加入参数限制,类如:

HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
request.Method = "POST";
request.Timeout = 120 * 1000;
request.AllowAutoRedirect = true;
request.KeepAlive = true;
request.ContentType = contentType;
ServicePointManager.ServerCertificateValidationCallback = new RemoteCertificateValidationCallback(CertificateValidation);

2:(我的问题也是这个原因)在访问接口时,本地host文件没有配置相关信息,可参考https://jingyan.baidu.com/article/fedf073754695735ac89772c.html

访问路径C:\Windows\System32\drivers\etc打开hosts文件【要以管理员打开,不然不饿能保存更改的内容】,在最后一行增加你访问的接口配置信息,类如:

192.168.0.XXX   api.XXXXX.com就是你访问的接口URL

# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host

# localhost name resolution is handled within DNS itself.
# 127.0.0.1 localhost
# ::1 localhost
192.168.0.XXX   api.XXXXX.com

保存即可。再次运行项目,惊喜发现终于访问成功!!

由于有时候需要在局域网访问项目,这里介绍VS怎样在局域网访问项目:【如对此不敢兴趣,为节省你的宝贵时间,可忽略哦~】

1. 打开项目目录下的.vs目录, 修改applicationhost.config文件中的内容

2:【192.168.0.110是你的电脑的IP,可通过cmd ipconfig查看本机IP】

          <!--找到项目名-->

         < site  name="muTian.sysAdmin.UI.Portal" id="2">
             < application  path="/" applicationPool="Clr4IntegratedAppPool">
                 < virtualDirectory  path="/" physicalPath="D:\CsharpProject\muTian.sysAdmin\muTian.sysAdmin.UI.Portal" />
             </ application >
             < bindings >
                     <!--这一行是默认就有的-->
                 < binding  protocol="http" bindingInformation="*:10829:localhost" />
                 <!--这一行是增加的-->
                     <binding protocol="http" bindingInformation="*:10829:192.168.0.110" />
             </ bindings >
         </ site >      

3:打开cmd【注意以管理员打开】【10829是你的项目端口号,可在VS里面右键-->>属性查看】

执行 netsh http add urlacl url=http://192.168.0.110:59961/ user=everyone

此上下文中的命令:
show cacheparam - 显示 HTTP 服务的缓存参数。
show cachestate - 列出缓存的 URI 资源及其相关属性。
show iplisten - 显示 IP 侦听列表中的所有 IP 地址。
show servicestate - 显示 HTTP 服务快照。
show setting - 显示服务的设置值。
show sslcert - 显示 SSL 证书绑定。
show timeout - 显示服务的超时值。
show urlacl - 显示 URL 命名空间保留项。

重新编译运行项目,记得要以管理员省份打开VS,不然会出现503状态码的错误

至此,关于请求问题介绍完成,如有问题,可评论留言!!

猜你喜欢

转载自www.cnblogs.com/fengyulv/p/11824369.html