遗憾迟香 发表于 2020-11-24 17:21

C#本地解析Get请求

在一个杂牌网站申请到了一台免费虚拟主机,想测试一个webapi,但需要修改hosts本地解析才能访问,请问用C#能通过不修改hosts文件的方法来实现Get请求吗?

WolfAvenue 发表于 2020-11-24 17:37

直接ip访问不行么???

遗憾迟香 发表于 2020-11-24 17:39

WolfAvenue 发表于 2020-11-24 17:37
直接ip访问不行么???

虚拟主机多人共享一个ip,用ip访问是行不通的

不是秀才 发表于 2020-11-24 17:53

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baidu.com");
            WebProxy proxy = new WebProxy("58.221.42.154", 80);
            request.Proxy = proxy;

            using (WebResponse response = request.GetResponse())
            {
                using (TextReader reader = new StreamReader(response.GetResponseStream()))
                {
                  string line;
                  while ((line = reader.ReadLine()) != null)
                        Console.WriteLine(line);
                }
            }

WolfAvenue 发表于 2020-11-24 17:53

遗憾迟香 发表于 2020-11-24 17:39
虚拟主机多人共享一个ip,用ip访问是行不通的

上面那个空间提供商,提供的域名?直接这个域名访问不行?
host配置好像没用把,实际上还是ip进行访问

zfzhhh 发表于 2020-11-24 18:04

结论,可以:
很繁琐.
虚拟空间共享ip, 你访问他服务器连的是ip,为啥她能为你分配到不同的网站,
是根据你的http头中的host这个字段.
因此你只需要给他发送的http头是这个头即可.
为啥用ip直接访问不行,直接ip访问, 用浏览器,用各种常见http库,它连接服务器ip之后,发送的host字段是ip.
所以你要解决这个问题, 用hosts文件,设置ip和域名的映射,你用c#访问的时候,连接的是你指定的ip, 发送的host字段是正常域名.

你不想用hosts文件解决.
那就自己用c#的socket连接服务器, 然后发送自己想发送的http头, 这样也能实现.
但是繁琐.

方法就是这样
页: [1]
查看完整版本: C#本地解析Get请求