Urllib2没有返回整个数据

时间:2016-01-22 19:26:56

标签: python json urllib2 icecast

我正在尝试使用python从服务器下载icecast json状态数据。

这是我的代码(经过不同的尝试)。

A.id

问题是我的回复是这样打印的

def checkStream(url):
  request = urllib2.Request(url)
  request.add_header("Connection", "keep-alive")
  request.add_header("Cache-Control", "max-age=0")
  request.add_header("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8")
  request.add_header("Upgrade-Insecure-Requests", "1")
  request.add_header("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/47.0.2526.111 Safari/537.36")
  request.add_header("Accept-Encoding", "gzip, deflate, sdch")

  response = urllib2.urlopen(request)
  line = response.read()
  print line
  return

checkStream("http://108.168.175.149:10128/status-json.xsl")

json响应的结尾是272个字节,这正是数据中返回的响应头的字节数。

如果我在Chrome上打开链接,则响应显示正常。

我还使用Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate Pragma: no-cache Access-Control-Allow-Origin: * Access-Control-Allow-Headers: Origin, Accept, X-Requested-With, Content-Type Access-Control-Allow-Methods: GET, OPTIONS, HEAD {"icestats":{"admin":"icemaster@localhost","banned_IPs":0,"build":20141112090605,"host":"pro02.caster.fm","location":"Earth","outgoing_kbitrate":3799,"server_id":"Icecast 2.3.3-kh11","server_start":"05/Oct/2015:10:43:46 -0500","stream_kbytes_read":104422400,"stream_kbytes_sent":5123403693,"source":[{"audio_codecid":2,"audio_info":"ice-samplerate=44100;ice-bitrate=96;ice-channels=2","bitrate":96,"connected":33748,"genre":"Various","ice-bitrate":96,"ice-channels":2,"ice-samplerate":44100,"incoming_bitrate":95920,"listener_peak":153,"listeners":42,"listenurl":"http://pro02.caster.fm:10128/live","mpeg_channels":2,"mpeg_samplerate":44100,"outgoing_kbitrate":3883,"queue_size":358609,"se lib进行了测试,没有运气。

requests

如何检索完整数据?

1 个答案:

答案 0 :(得分:0)

您要求的服务器正在运行古老版本的Icecast前叉。

此错误已得到修复,很久以前在主线中发布了修复程序。我建议从http://icecast.org升级(或告诉操作员升级)服务器到最新的官方Icecast版本