C# 在 401 中调用 web 服务结果
C# calling a webservice result in 401
我正在尝试调用一个简单的 Web 服务来获取地址的经纬度,当我手动尝试时它起作用了:
https://services.gisgraphy.com/geocoding/?address=paris
但是使用代码,我得到 401 unauthorize..我做错了什么?
WebRequest request = WebRequest.Create("https://services.gisgraphy.com/geocoding/?address=paris");
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
WebResponse response = request.GetResponse(); // It happens here.
What am I doing wrong?
您还没有阅读 the website belonging to the API you're calling 顶部的蓝色大条:
Gisgraphy is open sources and only use open data. This server is for demonstration only. Test it, Play with webservices but then Install Gisgraphy locally or subscribe to premium hosted services
所以他们可能检测到您正在从他们的游乐场外面给他们的 API 打电话,并且拒绝您这样做。
所以,要么在本地安装,要么订阅他们的托管服务。后者可能会给你一个 API 键,允许你进行 API 调用。
当然你可以通过模仿你的请求来自浏览器来伪造你的方式,例如使用 User-agent 和接受 headers,但他们肯定会尝试检测这个并且完全阻止您的 IP 地址。只需付款,或在本地托管。
关于这个问题的一些事情:
- 检查 URL/web-service 是否可以通过以下方式直接访问
browser/postman 工具。
- 其次,我的一位朋友提到了这一点
网络服务有一些安全协议。可能是不允许
来自外部的请求(即进入其域以外的请求)
一旦你深入了解了以上两种可能性,你应该处于良好的状态才能继续前进。
我正在尝试调用一个简单的 Web 服务来获取地址的经纬度,当我手动尝试时它起作用了:
https://services.gisgraphy.com/geocoding/?address=paris
但是使用代码,我得到 401 unauthorize..我做错了什么?
WebRequest request = WebRequest.Create("https://services.gisgraphy.com/geocoding/?address=paris");
request.Credentials = CredentialCache.DefaultCredentials;
request.Method = "GET";
WebResponse response = request.GetResponse(); // It happens here.
What am I doing wrong?
您还没有阅读 the website belonging to the API you're calling 顶部的蓝色大条:
Gisgraphy is open sources and only use open data. This server is for demonstration only. Test it, Play with webservices but then Install Gisgraphy locally or subscribe to premium hosted services
所以他们可能检测到您正在从他们的游乐场外面给他们的 API 打电话,并且拒绝您这样做。
所以,要么在本地安装,要么订阅他们的托管服务。后者可能会给你一个 API 键,允许你进行 API 调用。
当然你可以通过模仿你的请求来自浏览器来伪造你的方式,例如使用 User-agent 和接受 headers,但他们肯定会尝试检测这个并且完全阻止您的 IP 地址。只需付款,或在本地托管。
关于这个问题的一些事情:
- 检查 URL/web-service 是否可以通过以下方式直接访问 browser/postman 工具。
- 其次,我的一位朋友提到了这一点 网络服务有一些安全协议。可能是不允许 来自外部的请求(即进入其域以外的请求)
一旦你深入了解了以上两种可能性,你应该处于良好的状态才能继续前进。