我有这个代码,应该可以工作,但我得到了奇怪的错误,对于其他用户这个代码工作正常。
# -*- coding: utf-8 -*-
import re, sys
import urllib2
import urllib2_file
user_hash='MTggMzc6T1dZgggggzWXpWbVptggggHTXlOV1F5WWgggggggWT0%3D'
text_file = 'sveikinimas.txt'
postdata = { 'type': '40',
'description': '',
'descr': 'Pelėsiais ir kerpėm apaugus aukštai\nTrakų štai garbinga pilis\n....',
'filetype': '2',
'name': 'Su šventėmis!',
'file': {'fd': open(text_file), 'filename': text_file},
'nfo': ''
}
req = urllib2.Request('http://www.linkomanija.net/takefreak.php',postdata)
req.add_header('Cookie', 'login=' + user_hash)
print req
response = urllib2.urlopen(req)
print response
html = response.read()
f = open("out.html", "wb")
f.write(html)
f.close()
此代码适用于其他用户,但我收到了奇怪的错误:
<urllib2.Request instance at 0x0387C698>
Traceback (most recent call last):
File "C:\Users\drakaz\Desktop\lm\hello.py", line 25, in <module>
response = urllib2.urlopen(req)
File "C:\Python26\lib\urllib2.py", line 126, in urlopen
return _opener.open(url, data, timeout)
File "C:\Python26\lib\urllib2.py", line 392, in open
response = self._open(req, data)
File "C:\Python26\lib\urllib2.py", line 410, in _open
'_open', req)
File "C:\Python26\lib\urllib2.py", line 370, in _call_chain
result = func(*args)
File "C:\Users\drakaz\Desktop\lm\urllib2_file.py", line 207, in http_open
return self.do_open(httplib.HTTP, req)
File "C:\Users\drakaz\Desktop\lm\urllib2_file.py", line 298, in do_open
return self.parent.error('http', req, fp, code, msg, hdrs)
File "C:\Python26\lib\urllib2.py", line 436, in error
return self._call_chain(*args)
File "C:\Python26\lib\urllib2.py", line 370, in _call_chain
result = func(*args)
File "C:\Python26\lib\urllib2.py", line 519, in http_error_default
raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
HTTPError: HTTP Error -1:
答案 0 :(得分:1)
错误消息来自urllib2_file
。我相信,这是不恰当的。您可能只想对其进行评论,并尝试该模块是否未被使用。
我也看到在帖子数据中,你正在里面有另一本字典。情况并非如此。只需拥有该文件的内容即可。读取文件并将内容作为字符串。没有字典,没有文件名。