in mns/mns_http.py [0:0]
def send_request(self, req_inter):
try:
if self.logger:
self.logger.debug("SendRequest %s" % req_inter)
self.conn.request(req_inter.method, req_inter.uri, req_inter.data, req_inter.header)
self.conn.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
try:
http_resp = self.conn.getresponse()
except BadStatusLine:
#open another connection when keep-alive timeout
#httplib will not handle keep-alive timeout, so we must handle it ourself
self.conn.close()
self.conn.request(req_inter.method, req_inter.uri, req_inter.data, req_inter.header)
self.conn.sock.setsockopt(socket.IPPROTO_TCP, socket.TCP_NODELAY, 1)
http_resp = self.conn.getresponse()
headers = dict(http_resp.getheaders())
resp_inter = ResponseInternal(status = http_resp.status, header = headers, data = http_resp.read())
resp_inter.data = resp_inter.data.decode('utf-8')
self.request_size = self.conn.request_length
self.response_size = len(resp_inter.data)
if not self.is_keep_alive():
self.conn.close()
if self.logger:
self.logger.debug("GetResponse %s" % resp_inter)
return resp_inter
except Exception as e:
self.conn.close()
raise MNSClientNetworkException("NetWorkException", str(e), req_inter.get_req_id()) #raise netException