我在使用谷歌翻译应用程序接口V2时遇到了一个异常。异常文本是“远程服务器返回错误:(403)禁止”。调用req.GetResponse()函数时发生异常。我正在使用下面的代码。请告知是否有正确的代码可用。谢谢
public static string Translate()
{
String textToTranslate = "Common";
String fromLanguage = "en"; // english
String toLanguage = "ur"; // spanish
String apiKey = /*My API Key*/;
// create the url for making web request
String apiUrl = "https://www.googleapis.com/language/translate/v2?key={0}&source={1}&target={2}&q={3}";
String url = String.Format(apiUrl, apiKey, fromLanguage, toLanguage, textToTranslate);
string text = string.Empty;
try
{
// create the web request
WebRequest req = HttpWebRequest.Create(url);
// set the request method
req.Method = "GET";
// get the response
using (WebResponse res = req.GetResponse())
{
// read response stream
// you must specify the encoding as UTF8
// because google returns the response in UTF8 format
using (StreamReader sr = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
{
// read text from response stream
text = sr.ReadToEnd();
}
}
}
catch (Exception e)
{
throw; // throw the exception as is/
}
// return text to callee
return text;
}发布于 2011-10-13 16:34:56
你要么遇到谷歌设置的应用程序编程接口使用限制(参见http://code.google.com/apis/language/translate/v2/getting_started.html)
或
问题出在语言(ur =乌尔都语?)你使用的是...您应该检查此组合是否通过相应的API实际可用。如果你真的想要西班牙语,就像你的评论所说的那样,我怀疑那应该是es。
另一点:
您没有对URL参数进行转义(特别是要翻译的文本),这反过来可能会在未来导致一些问题……
https://stackoverflow.com/questions/7750913
复制相似问题