我想在一個原始套接字中發佈一個文件,我讀了RFC,並且我想我實際上測試了很多選項,但現在我被卡住了。順便說一句,我知道我可以使用pycurl,httplib等,但我真的想做它manualy。如何使用telnet或原始套接字發佈文件?
在這裏,請求:
POST /upload.php?foo=bar HTTP/1.0
Host: localhost
User-Agent: Mozilla/5.0
Content-Type: multipart/form-data; boundary=9afb0c26-7adf-11e0-b167-1c6f65955350
--9afb0c26-7adf-11e0-b167-1c6f65955350
Content-Disposition: form-data; name="files[]"; filename="image.png"
Content-Type: image/png
#PNG
IHD&# )IDA##x## D
[##
###b######j
5#r#`IEND#B`#
--9afb0c26-7adf-11e0-b167-1c6f65955350--
所有這些線是從陣列中加入:
"\n".join(lines)
我嘗試都與\ n & \ r \ n
我發送到CRLF在最後。
我讀我的圖片是這樣的:
f = open(file, 'rb')
file_content = ''
while True:
chunck = f.read(1024)
file_content += chunck
if len(chunck) == 0:
break;
lines.append(file_content)
任何想法?
祝你好運,起初我很想嘗試找出問題,但第二想到這是一個瘋狂的想法。我無法想象當你用'urllib2','twisted'或'scrapy'這麼簡單的時候,你爲什麼要這麼做(你有什麼樣的http錯誤處理方法???) – 2011-05-10 08:39:09
這不是[原始套接字](http://en.wikipedia.org/wiki/Raw_socket)。 – 2011-10-15 21:38:16