python调用bitly api出错

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/hyb612/article/details/78505831

前言

使用python调用bitly 的api对长链接进行缩短时,发生错误。

源代码

    def getShortLink(url):
        b = bitlyapi.BitLy(bitly_user, api_key)
        res = b.shorten(longUrl=url)
        print res['url'] 

错误详情

 File "c:\Python27\lib\site-packages\bitlyapi\bitly.py", line 78, in _
    fd = urllib.urlopen(url, query_string)
  File "c:\Python27\lib\urllib.py", line 89, in urlopen
    return opener.open(url, data)
  File "c:\Python27\lib\urllib.py", line 215, in open
    return getattr(self, name)(url, data)
  File "c:\Python27\lib\urllib.py", line 351, in open_http
    errcode, errmsg, headers = h.getreply()
  File "c:\Python27\lib\httplib.py", line 1196, in getreply
    response = self._conn.getresponse()
  File "c:\Python27\lib\httplib.py", line 1121, in getresponse
    response.begin()
  File "c:\Python27\lib\httplib.py", line 438, in begin
    version, status, reason = self._read_status()
  File "c:\Python27\lib\httplib.py", line 394, in _read_status
    line = self.fp.readline(_MAXLINE + 1)
  File "c:\Python27\lib\socket.py", line 480, in readline
    data = self._sock.recv(self._rbufsize)
IOError: [Errno socket error] [Errno 10054]

原因分析

10054是被远端服务器重置连接,但是该api本身就是bitly网站提供,所以不存在bitly服务器重置连接了。但是事实确实如此,换linux系统重试,发现又是成功的。区别在于,linux默认可以穿越GFW。

结论

与代码无关,GFW造成的。

猜你喜欢

转载自blog.csdn.net/hyb612/article/details/78505831