Google的API如何强制使用桌面应用的使用限制?

时间:2012-01-12 09:54:41

标签: vb.net google-maps-api-3 httpwebrequest

我正在使用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

1 个答案:

答案 0 :(得分:2)

documentation中描述的使用限制没有来自您的应用程序的识别信息(只需查看您向Google发出的http调用),因此限制将基于每个用户强制执行。也许如果您联系Google的销售团队,他们可以提供有关如何解决您的用例的更多信息,以及用户可能需要更高的限制。