繁体   English   中英

(403)禁止WebRequest

[英](403) Forbidden upon WebRequest

我正在尝试为我的聊天程序创建一个常规的行踪定位器。 它目前显示IP,用户名,我正在尝试添加位置。 我正在尝试使用这段代码:

var location = "";
List<string> HTML_code = new List<string>();
WebRequest request = WebRequest.Create("http://www.maxmind.com/app/locate_demo_ip?ips=" + IP);
using (WebResponse response = request.GetResponse())
using (StreamReader stream = new StreamReader(response.GetResponseStream()))
{
  string line;
  while ((line = stream.ReadLine()) != null)
  {
    HTML_code.Add(line);
  }
}

location = (HTML_code[296].Replace("<td><font size=\"-1\">", "")).Replace("</font></td>", "");
return location;

但是,这会返回有关WebResponse的异常:

远程服务器返回错误:(403)Forbidden。(System.Net.WebResponse GetResponse())

我为什么要这个? 我该如何预防呢?

你必须有许可证密钥才能使用这项服务,因为写在这里

所有服务都采用与输入相同的参数。 它们之间的唯一区别是它们使用的URI和它们返回的数据。 每个服务采用的两个参数是要查找的IP地址MaxMind许可证密钥

获得这样的密钥后,除了IP地址外,还必须将其添加到URL中。

我找不到该特定REST API调用的文档,但从该公司的网站上可以清楚地看到该服务不是免费的(至少没有许可证密钥)。 这是一种经典的方法(伴随您使用app / license密钥对API发出的每个请求),例如Twitter和Facebook都拥有它。

看看这个链接 ,他们提供了一个如何使用C#的GeoIP服务的代码示例。 另外,请考虑查看他们的免费数据库

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM