Может ли быть так, что ключ API сокращения URL-адреса Google работает только на 1 компьютере? - PullRequest
2 голосов
/ 23 марта 2011

Я использую Google URL Shortener с веб-сайта ASP.NET. Оно работает нормально с моего localhost, но на тестовом сервере я получаю следующее Ошибка:

System.Net.WebException: The remote server returned an error: (403)
Forbidden.
at System.Net.HttpWebRequest.GetResponse()
at GoogleUrlShortnerApi.Shorten(String url) 

Я использую точный код, который показан здесь: http://www.jphellemons.nl/post/Google-URL-shortener-API-%28googl%29-C-sharp-class-C.aspx

Может быть, ключ работает только на моем локальном компьютере, а не на любом другом компьютере? Я получил другой ключ (используя другую учетную запись Google), но он дает мне ту же ошибку (403) как на моем локальном компьютере, так и на тестовом сервере.

Ответы [ 2 ]

2 голосов
/ 23 марта 2011

Я сделал несколько модификаций, согласно учебнику Скотта Митчелла , и я изменяю следующие строки кода:

Сначала Вместо:

string post = "{\"longUrl\": \"" + url + "\"}";

Я использовал:

string post = string.Format(@"{{""longUrl"": ""{0}""}}", url );

Второй , я закомментировал эти 2 строки:

request.ServicePoint.Expect100Continue = false;  
request.Headers.Add("Cache-Control", "no-cache");

Я не знаю почему, но внезапно это начало работать. Итак, я хотел посмотреть, какое из 3-х решений я сделал, поэтому я возвратил каждое из них, и - ТАДА - оно все еще работает, даже когда все 3 остались там! Так что я действительно не знаю, что вызвало проблему, но так как код работает без этих двух закомментированных строк и другой модификации, я оставляю это таким образом.

Надеюсь, этот ответ кому-нибудь когда-нибудь поможет ...

2 голосов
/ 23 марта 2011

Я очень сомневаюсь, что API связан с конкретным ПК. Вы должны проверить запросы - и URL, и заголовки - которые отправляет ваша программа, они должны отличаться в некотором смысле Ваш сервер находится за каким-то прокси-сервером - например, Apache? Если он не настроен правильно, это также может быть искажением запроса. Также убедитесь, что ваши запросы закодированы правильно.

...