免费虚拟主机不让WebRequest获取页面

时间:2013-06-22 10:38:28

标签: c# httpwebrequest

我正在创建一个聊天应用程序,我正在使用免费的虚拟主机将在线用户存储在数据库中。我有以下结构:

1)index.php我以这种格式获得在线用户:

<user>
   <name></name>
   <ip></ip>
</user>

2)add.php?user=在连接时向数据库添加新用户。

3)remove.php?user=在用户断开连接时删除用户。

现在在应用程序中我有一个函数GetUsers(),如下所示:

string url = @"http://.../index.php";
System.Net.WebRequest req = System.Net.WebRequest.Create(url);

System.Net.WebResponse res = (System.Net.WebResponse)req.GetResponse();

如果我使用本地IIS服务器作为url它可以工作,但是当我尝试使用免费的webhosted url时,它会给我406 Not Acceptable错误。所以我认为我需要添加一些标题或其他内容来伪造真正的浏览器。

更新: 1)免费托管服务使用Apache作为网络服务器。             2)您可以建议另一种方法来获取网页。

1 个答案:

答案 0 :(得分:0)

我建议使用像Fiddler这样的工具捕获浏览器的请求,然后尝试在代码中模拟它们。

您还可以使用this answer中的技术通过Fiddler路由您的程序化请求。 不久:

req.Proxy = new WebProxy("http://localhost:8888", false);

localhost:8888是Fiddler的默认地址。