4
4
5
5
6
6
class Stream :
7
- def __init__ (self , server , port = 80 , headers = {}):
7
+ def __init__ (self , server , port = 80 , headers = {}, url = '/' ):
8
8
''' Initialize a stream object and an HTTP Connection
9
9
with chunked Transfer-Encoding to server:port with optional headers.
10
10
'''
@@ -15,6 +15,7 @@ def __init__(self, server, port=80, headers={}):
15
15
self ._server = server
16
16
self ._port = port
17
17
self ._headers = headers
18
+ self ._url = url
18
19
self ._connect ()
19
20
20
21
def write (self , data , reconnect_on = ('' , 200 , )):
@@ -60,8 +61,10 @@ def write(self, data, reconnect_on=('', 200, )):
60
61
msg = data
61
62
msglen = format (len (msg ), 'x' ) # msg length in hex
62
63
# Send the message in chunk-encoded form
64
+ self ._conn .sock .setblocking (1 )
63
65
self ._conn .send ('{msglen}\r \n {msg}\r \n '
64
66
.format (msglen = msglen , msg = msg ).encode ('utf-8' ))
67
+ self ._conn .sock .setblocking (0 )
65
68
except http_client .socket .error :
66
69
self ._reconnect ()
67
70
self .write (data )
@@ -75,7 +78,7 @@ def _connect(self):
75
78
headers = self ._headers
76
79
self ._conn = http_client .HTTPConnection (server , port )
77
80
78
- self ._conn .putrequest ('POST' , '/' )
81
+ self ._conn .putrequest ('POST' , self . _url )
79
82
self ._conn .putheader ('Transfer-Encoding' , 'chunked' )
80
83
for header in headers :
81
84
self ._conn .putheader (header , headers [header ])
0 commit comments