2016-05-29 25 views
1

/*はIAMはurllib2.HTTPErrorを取得:HTTPエラー502:不正なゲートウェイ*/:HTTPエラー502:不正なゲートウェイ

import urllib2 
import json 

# locu_api = 'd1dab0b393b10f56532cacf6835d2619973f5f46' 
url = 'http://cricapi.com/api/cricketNews' 
/*The above url is used from cricapi.com*/ 
str = "" 

json_obj = urllib2.urlopen(url) 

data = json.load(json_obj) 
i = 0 
titles = {} 

for item in data['data']: 
    if item: 
     titles[i] = item['title'] 
     i+=1 
print titles 
/*printing all the content fetched from cricapi*/ 
if not str: 
    print "Hello" 

上記のコードを構築した後、 私は取得しています次のエラー:

トレースバック(最後の最新の呼び出し):1週間前

File "/home/karthi/Desktop/proj/cric.py", line 51, in <module> 
    json_obj = urllib2.urlopen(url).read() 
    File "/usr/lib/python2.7/urllib2.py", line 127, in urlopen 
    return _opener.open(url, data, timeout) 
    File "/usr/lib/python2.7/urllib2.py", line 410, in open 
    response = meth(req, response) 
    File "/usr/lib/python2.7/urllib2.py", line 523, in http_response 
    'http', request, response, code, msg, hdrs) 
    File "/usr/lib/python2.7/urllib2.py", line 448, in error 
    return self._call_chain(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 382, in _call_chain 
    result = func(*args) 
    File "/usr/lib/python2.7/urllib2.py", line 531, in http_error_default 
    raise HTTPError(req.get_full_url(), code, msg, hdrs, fp) 
    urllib2.HTTPError: HTTP Error 502: Bad Gateway 

。私は結果を得ることができました。しかし、今私はエラーを取得しています。

私が得意とすることについて誰でも説明してください。また解決策を提供してください。

答えて

1

Karthi、多くのAPIプロバイダに共通の問題です。サーバーの負荷がその瞬間の容量を超えた場合、リバースプロキシから502が取得され、エラーが発生する可能性があります。

これを回避するには、リトライ回数を設定することをお勧めします。例

function fetchdata(url) { 
    try { 
    // hit the URL and fetch data 
    } catch() { 
    // retry in case of an error 
    return fetchdata(url); 
    } 
} 

別の方法のためには、コールバック・サポート言語を使用している場合、所定の回数を再試行して、コールバック

function fetchdata(url, callback) { 
    try { 
    // hit the URL and fetch data 
    // success! 
    callback(returndata); 
    } catch() { 
    // retry in case of an error 
    if(exceeded retry count) callback(error); 
else 
    fetchdata(url, callback); 
    } 
} 

注意を呼び出すことです。これは、使用可能なサンプル擬似コード適切ではありませんコードそのように扱ってください。

もちろん、長期的にはAPIプロバイダに連絡して何が間違っているのかを理解することを頼むだけです。ほとんどのAPIプロバイダは、サービスの質に関してかなり肛門性向である傾向があり、問題に直面している誰かが、援助を迅速に提供する可能性が高いと判断した場合、傾向があります。

関連する問題