我正在使用HttpWebRequest从VB.net桌面应用程序使用Google的DistanceMatrix API。我传递了一个包含两个位置的URL(表示为经度和纬度),它使用真实街道以英里和分钟为单位给出了驾驶距离。 (实际上是米和秒,但我转换它。)
它在我的桌面上运行良好。我的代码中最重要的部分如下。但我不是一个网络/互联网/网络人,我正在通过例子这样做。到目前为止,我不必知道它是如何工作的,我对此很酷。
问题: 谷歌表示他们有使用限制。我个人不接近这些限制,但我的应用程序可能会分发给许多人,如果很多其他人使用它,我们将一起。实际上,某些用户可能会从单个工作站超过限制。如果需要,我愿意支付额外的使用费,但我不知道在这种情况下我是否会被要求这样做。
问题: 我看得很彻底,(或者至少我认为我有)并且据我所知,谷歌没有准确记录他们在这种情况下如何监控使用情况。文档似乎假设它将始终从Web服务器使用,并且文档中有一些参考不能从某些域使用它。但这是一个Windows窗体应用程序,所以它真的“通过域名”?什么域名?它是服务提供商的域名吗?还是通过IP地址?更重要的是,在这种情况下,每个用户都会被单独计算,还是会以某种方式与应用程序本身绑定在哪里?
很抱歉,如果我看起来像是stoopit。但有任何帮助吗?
我的代码中的相关功能如下所示,此处还有此API的Google文档页面。
http://code.google.com/apis/maps/documentation/distancematrix/
Public Function GetHTML(ByVal URL As String, Optional ByVal UserName As String = "", Optional ByVal Password As String = "") As String
Try
Dim reader As StreamReader
Dim Request As HttpWebRequest = HttpWebRequest.Create(URL)
'The following line empowers some downloads to work.
If UserName <> "" Then
Request.Credentials = New NetworkCredential(UserName, Password)
End If
Request.AllowAutoRedirect = True
Request.CookieContainer = CookieJar
Dim Response As HttpWebResponse = Request.GetResponse()
reader = New StreamReader(Response.GetResponseStream())
Response.Close()
Return reader.ReadToEnd()
Catch
Return ""
End Try
End Function
答案 0 :(得分:2)
documentation中描述的使用限制没有来自您的应用程序的识别信息(只需查看您向Google发出的http调用),因此限制将基于每个用户强制执行。也许如果您联系Google的销售团队,他们可以提供有关如何解决您的用例的更多信息,以及用户可能需要更高的限制。