Как API Google обеспечивает ограничение использования настольных приложений? - PullRequest
2 голосов
/ 12 января 2012

Я использую Google DistanceMatrix API из настольного приложения VB.net, используя HttpWebRequest.Я передаю ему URL-адрес, содержащий два местоположения (выраженные как долгота и широта), и он дает мне проезжающие расстояния в милях и минутах, используя реальные улицы.(На самом деле метры и секунды, но я его конвертирую.)

Отлично работает с моего рабочего стола.Самая значимая часть моего кода ниже.Но я не парень в сети / интернете / сети, и я делаю это на собственном примере.Пока мне не нужно знать, как это работает, и я к этому хорош.

ПРОБЛЕМА: Google говорит, что у них есть ограничения на использование.Лично я не подхожу к этим пределам, но мое приложение может быть распространено среди многих, и если многие другие будут его использовать, мы будем вместе.Фактически, некоторые пользователи могут выходить за пределы одной рабочей станции.Я готов заплатить за дополнительное использование в случае необходимости, но я не знаю, был бы я обязан сделать это в этой ситуации.

ВОПРОС: Я посмотрел полностью, (или, по крайней мере, я думаю,У меня есть) и, насколько я вижу, Google не документирует, как именно они контролируют использование в этом сценарии.Документация, кажется, предполагает, что она всегда будет использоваться с веб-сервера, и в документации есть некоторые ссылки, которые нельзя использовать с определенных доменов.Но это приложение Windows Forms, так что это действительно «по доменам»?Какой домен?Это домен поставщика услуг?Или это по IP адресу?И что важно, будет ли каждый пользователь учитываться отдельно в этой ситуации, или он будет каким-то образом привязан к самому приложению, где бы он ни находился?Но какая-нибудь помощь?

Соответствующая функция из моего кода ниже, а также здесь страница документации Google для этого API.

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 Ответ

2 голосов
/ 13 января 2012

Ограничения на использование, описанные в документации , не содержат никакой идентификационной информации из вашего приложения (просто посмотрите на http-вызов, который вы отправляете в Google), поэтому ограничения будут применяться для каждого пользователя.,Возможно, если вы свяжетесь с отделом продаж Google, они могут предоставить больше информации о том, как решить ваш сценарий использования, и у пользователей может возникнуть необходимость в более высоких лимитах.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...