我想創建一個簡單的應用程序來檢測短語的語言(使用Google API)並將其發送到對應的搜索引擎。例如,如果搜索查詢是俄語,那麼我需要將其重新定向到Yandex.ru,在所有其他情況下,將其轉到Google。語言特定的重定向
這就是我如何做到這一點:
def get(self):
decoded = unicode(unquote(self.request.query), "windows-1251")
text = decoded.encode("utf-8")
url = "http://ajax.googleapis.com/ajax/services/language/detect?v=1.0&q="+ quote(text)
try:
data = json.loads(urllib2.urlopen(url).read())
redirectUrl = "http://www.google.com/search?q=" + text
if data["responseData"]["language"] == 'ru':
redirectUrl = "http://yandex.ru/yandsearch?text=" + text
self.redirect(redirectUrl)
except urllib2.HTTPError, e:
self.response.out.write("HTTP error: %d" % e.code)
except urllib2.URLError, e:
self.response.out.write("Network error: %s" % e.reason.args[1])
當我請求此網址「http://findinrightplace.appspot.com/q?test查詢」重定向到谷歌,但重定向到Yandex的不起作用(http://findinrightplace.appspot.com/q?тестовыйзапрос)。
我做錯了什麼?
你可以嘗試使用像Firebug或Chrome的開發人員控制檯的工具來查看是否服務器返回重定向HTTP標頭。如果確實如此,那麼確定瀏覽器忽略頭部的原因是一個問題。 – 2010-10-26 11:24:13
它返回狀態碼302.我相信編碼有問題。 – 2010-10-26 11:39:06