【问题标题】:Could it be that the google url shortening api key works only on 1 computer?难道谷歌 url 缩短 api 密钥只能在 1 台计算机上工作?
【发布时间】:2011-03-23 12:20:19
【问题描述】:

我正在使用来自 ASP.NET 网站的 Google URL Shortener。有用 从我的本地主机很好,但在测试服务器上我得到以下 错误:

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)。

【问题讨论】:

    标签: asp.net url-shortener google-url-shortener


    【解决方案1】:

    我非常怀疑 API 是否与特定 PC 相关联。您需要检查程序发出的请求(包括 URL 和标头),它们必须在某些方面有所不同。您的服务器是否在某种代理后面 - 例如 Apache?如果配置不正确,这也可能会破坏请求。还要确保您的请求编码正确。

    【讨论】:

      【解决方案2】:

      我做了一些修改,根据tutorial by Scott Mitchell,我更改了以下代码行:

      首先,而不是:

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

      我用过:

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

      第二,我注释掉了这两行:

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

      我不知道为什么,但它突然开始工作了。所以我想看看我做的 3 个薄薄中的哪一个出了问题,所以我把每一个都退回了,而且 - TADA - 它仍然有效,即使所有 3 个都在那里!所以我真的不知道是什么导致了这个问题,但由于代码在没有这 2 行注释掉的行和其他修改的情况下工作,我就这样离开了。

      我希望这个答案会在某个时候对某人有所帮助......

      【讨论】:

      • 您是否在页面加载时从代码隐藏中调用了这个?你是怎么调用这个方法的?
      • @hsobhy 这是 5 年前的问题。我不记得它的细节了......对不起。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2016-08-25
      • 2017-01-11
      • 1970-01-01
      • 2014-12-24
      相关资源
      最近更新 更多