本文整理汇总了Python中httplib.HTTP.send方法的典型用法代码示例。如果您正苦于以下问题:Python HTTP.send方法的具体用法?Python HTTP.send怎么用?Python HTTP.send使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类httplib.HTTP
的用法示例。
在下文中一共展示了HTTP.send方法的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: doLookup
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def doLookup(cellId, lac, host="www.google.com", port=80):
from string import replace
from struct import unpack
page = "/glm/mmap"
http = HTTP(host, port)
result = None
errorCode = 0
content_type, body = encode_request(cellId, lac)
http.putrequest('POST', page)
http.putheader('Content-Type', content_type)
http.putheader('Content-Length', str(len(body)))
http.endheaders()
http.send(body)
errcode, errmsg, headers = http.getreply()
result = http.file.read()
# be nice to the web service, will not pause on memoized coordinates
time.sleep(0.75)
# could need some modification to get the answer: here I just need
# to get the 5 first characters
if (errcode == 200):
(a, b, errorCode, latitude, longitude, c, d, e) = unpack(">hBiiiiih",result)
latitude = latitude / 1000000.0
longitude = longitude / 1000000.0
return latitude, longitude
示例2: grab_information
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def grab_information(cid, lac, mnc=0, mcc=0):
country = country_iso(mcc)
v("Fetching latitude and longitude...")
query = pack('>hqh2sh13sh5sh3sBiiihiiiiii',
21, 0,
len(country), country,
len(__DEVICE__), __DEVICE__,
len('1.3.1'), "1.3.1",
len('Web'), "Web",
27, 0, 0,
3, 0, int(cid), int(lac), 0, 0, 0, 0)
http = HTTP('www.google.com', 80)
http.putrequest('POST', '/glm/mmap')
http.putheader('Content-Type', 'application/binary')
http.putheader('Content-Length', str(len(query)))
http.endheaders()
http.send(query)
code, msg, headers = http.getreply()
result = http.file.read()
try:
(a, b,errorCode, lat, lon, cov, d, e) = unpack(">hBiiiiih",result)
except:
a = 0
b = 0
errorCode = 0
lat = 0
lon = 0
cov = 0
d = 0
e = 0
pass
v("a=%s, b=%s, errorCode=%s, cov=%s, d=%s, e=%s" % (str(a), str(b), errorCode, str(cov), str(d), str(e)))
lat = lat / 1000000.0
lon = lon / 1000000.0
v("Here we go: %s and %s" % (lat, lon))
geo_info = None
geo_info_json = None
geo_info = grab_geo_info(lat, lon)
geo_info = grab_geo_info(-8.064159, -34.896666)
print str(geo_info)
geo_info_json = json.loads(geo_info)
v("Geo Info: %s" % geo_info)
v("Geo Info: %s" % str(geo_info_json))
c = Cell(geo_info_json, lat, lon, cov)
return c
示例3: fetch_latlong_http
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def fetch_latlong_http(self, query):
http = HTTP('www.google.com', 80)
http.putrequest('POST', '/glm/mmap')
http.putheader('Content-Type', 'application/binary')
http.putheader('Content-Length', str(len(query)))
http.endheaders()
http.send(query)
code, msg, headers = http.getreply()
result = http.file.read()
return result
示例4: fetch_latlong_http
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def fetch_latlong_http(query):
http = HTTP("www.google.com", 80)
http.putrequest("POST", "/glm/mmap")
http.putheader("Content-Type", "application/binary")
http.putheader("Content-Length", str(len(query)))
http.endheaders()
http.send(query)
code, msg, headers = http.getreply()
result = http.file.read()
return result
示例5: fetch_id_from_Google
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def fetch_id_from_Google(self, cid, lac, country):
latitude = 0
longitude = 0
device = "Motorola C123"
country = Translator.Country[country]
b_string = pack(
">hqh2sh13sh5sh3sBiiihiiiiii",
21,
0,
len(country),
country,
len(device),
device,
len("1.3.1"),
"1.3.1",
len("Web"),
"Web",
27,
0,
0,
3,
0,
cid,
lac,
0,
0,
0,
0,
)
http = HTTP("www.google.com", 80)
http.putrequest("POST", "/glm/mmap")
http.putheader("Content-Type", "application/binary")
http.putheader("Content-Length", str(len(b_string)))
http.endheaders()
http.send(b_string)
code, msg, headers = http.getreply()
try:
bytes = http.file.read()
(a, b, errorCode, latitude, longitude, c, d, e) = unpack(">hBiiiiih", bytes)
latitude /= 1000000.0
longitude /= 1000000.0
status = CellIDDBStatus.CONFIRMED
except:
status = CellIDDBStatus.NOT_IN_DB
return status, latitude, longitude
示例6: _post_multipart
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def _post_multipart(self, host, selector, fields, files):
"""
Post fields and files to an http host as multipart/form-data.
fields is a sequence of (name, value) elements for regular form fields.
files is a sequence of (name, filename, value) elements for data to be uploaded as files
Return the server's response page.
"""
content_type, body = self._encode_multipart_formdata(files)
h = HTTP(host)
h.putrequest('POST', selector)
h.putheader('content-type', content_type)
h.putheader('content-length', str(len(body)))
h.endheaders()
h.send(body)
errcode, errmsg, headers = h.getreply()
logger.debug("File sent with error code " + str(errcode) + "; Message was: " + str(errmsg))
return RequestResult(errcode, errmsg, h.file.read())
示例7: doLookup
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def doLookup(cellId, lac, host = "www.google.com", port = 80):
page = "/glm/mmap"
http = HTTP(host, port)
result = None
errorCode = 0
content_type, body = encode_request(cellId, lac)
http.putrequest('POST', page)
http.putheader('Content-Type', content_type)
http.putheader('Content-Length', str(len(body)))
http.endheaders()
http.send(body)
errcode, errmsg, headers = http.getreply()
result = http.file.read()
if (errcode == 200):
(a, b,errorCode, latitude, longitude, accuracy, c, d) = unpack(">hBiiiiih",result)
latitude = latitude / 1000000.0
longitude = longitude / 1000000.0
return latitude, longitude, accuracy
示例8: post_multipart
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def post_multipart(host, port, selector, fields, files):
content_type, body = encode_multipart_formdata(fields, files)
h = HTTPConnection(host, port)
h.putrequest('POST', selector)
h.putheader('content-type', content_type)
h.putheader('content-length', str(len(body)))
h.endheaders()
if _python2:
h.send(body)
else:
h.send(body.encode('utf-8'))
if _python2:
errcode, errmsg, headers = h.getreply()
if errcode != 200:
raise HTTPException("%s: %s" % (errcode, errmsg))
return h.file.read()
else:
res = h.getresponse()
if res.status != 200:
raise HTTPException("%s: %s" % (res.status, res.reason))
return res.read()
示例9: send_request
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def send_request(self, request, response):
h = HTTP(urlparse(request.uri)[1]) #TODO: split out port, userinfo
h.putrequest(request.method, request.uri)
for field_name, field_value in request.representation.headers.items():
if field_name == "Content-Length": continue
h.putheader(field_name, field_value.string)
if request.representation.has_body:
h.putheader('Content-Length', str(len(request.representation.body))) #FIXME: hmm. accesses body. options?
h.putheader('User-Agent', self.user_agent) # FIXME: use header dict, don't override
h.endheaders()
if request.representation.has_body:
h.send(request.representation.body) #FIXME: use iterator?
status_code, status_phrase, headers = h.getreply()
response_type = status.lookup.get(status_code, None)
if response_type is not None:
response.__class__ = response_type
response.status_code = status_code
response.status_phrase = status_phrase
response.representation.headers.parseMessage(headers) #FIXME: split entity and message hdrs
response.representation._body_iter = h.getfile() #FIXME: iterator, shouldn't have to do this _ ...
if not isinstance(response, status.Successful):
raise response
示例10: __call__
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def __call__(self,*args,**kw):
method=self.method
if method=='PUT' and len(args)==1 and not kw:
query=[args[0]]
args=()
else:
query=[]
for i in range(len(args)):
try:
k=self.args[i]
if kw.has_key(k): raise TypeError, 'Keyword arg redefined'
kw[k]=args[i]
except IndexError: raise TypeError, 'Too many arguments'
headers={}
for k, v in self.headers.items(): headers[translate(k,dashtrans)]=v
method=self.method
if headers.has_key('Content-Type'):
content_type=headers['Content-Type']
if content_type=='multipart/form-data':
return self._mp_call(kw)
else:
content_type=None
if not method or method=='POST':
for v in kw.values():
if hasattr(v,'read'): return self._mp_call(kw)
can_marshal=type2marshal.has_key
for k,v in kw.items():
t=type(v)
if can_marshal(t): q=type2marshal[t](k,v)
else: q='%s=%s' % (k,quote(v))
query.append(q)
url=self.rurl
if query:
query='&'.join(query)
method=method or 'POST'
if method == 'PUT':
headers['Content-Length']=str(len(query))
if method != 'POST':
url="%s?%s" % (url,query)
query=''
elif not content_type:
headers['Content-Type']='application/x-www-form-urlencoded'
headers['Content-Length']=str(len(query))
else: method=method or 'GET'
if (self.username and self.password and
not headers.has_key('Authorization')):
headers['Authorization']=(
"Basic %s" %
encodestring('%s:%s' % (self.username,self.password)).replace(
'\012','')
)
try:
h=HTTP(self.host, self.port)
h.putrequest(method, self.rurl)
for hn,hv in headers.items():
h.putheader(translate(hn,dashtrans),hv)
h.endheaders()
if query: h.send(query)
ec,em,headers=h.getreply()
response =h.getfile().read()
except:
raise NotAvailable, RemoteException(
NotAvailable,sys.exc_info()[1],self.url,query)
if (ec - (ec % 100)) == 200:
return (headers,response)
self.handleError(query, ec, em, headers, response)
示例11: str
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
('Accept-Language', 'en'),
('Pragma', 'no-cache'),
('Cache-Control', 'no-cache'),
('User-Agent', 'Lynx/2.6 libwww-FM/2.14'),
('From', '"a-fan" <[email protected]>'),
('Referer', 'http://www.comcentral.com/mst/mstpoll.htm'),
('Content-type', 'application/x-www-form-urlencoded'),
('Content-length', '8')]
text='vote=' + str(episode)
n = n - 1
h = HTTP('www.comcentral.com')
h.debuglevel = 1
h.putrequest('POST', '/cgi-bin/rbox/pollboy.pl')
for (hn, hv) in headers:
if (hn == 'From'):
hv = 'user' + str(n) + '@blah.com'
h.putheader(hn, hv)
#print "hn:", hn, "hv:", hv
h.endheaders()
h.send(text)
errcode, errmsg, headers = h.getreply()
if errcode == 200:
f = h.getfile()
print f.read() # Print the raw HTML
示例12: __call__
# 需要导入模块: from httplib import HTTP [as 别名]
# 或者: from httplib.HTTP import send [as 别名]
def __call__(self, *args, **kw):
method = self.method
if method == "PUT" and len(args) == 1 and not kw:
query = [args[0]]
args = ()
else:
query = []
for i in range(len(args)):
try:
k = self.args[i]
if kw.has_key(k):
raise TypeError, "Keyword arg redefined"
kw[k] = args[i]
except IndexError:
raise TypeError, "Too many arguments"
headers = {}
for k, v in self.headers.items():
headers[translate(k, dashtrans)] = v
method = self.method
if headers.has_key("Content-Type"):
content_type = headers["Content-Type"]
if content_type == "multipart/form-data":
return self._mp_call(kw)
else:
content_type = None
if not method or method == "POST":
for v in kw.values():
if hasattr(v, "read"):
return self._mp_call(kw)
can_marshal = type2marshal.has_key
for k, v in kw.items():
t = type(v)
if can_marshal(t):
q = type2marshal[t](k, v)
else:
q = "%s=%s" % (k, quote(v))
query.append(q)
url = self.rurl
if query:
query = join(query, "&")
method = method or "POST"
if method == "PUT":
headers["Content-Length"] = str(len(query))
if method != "POST":
url = "%s?%s" % (url, query)
query = ""
elif not content_type:
headers["Content-Type"] = "application/x-www-form-urlencoded"
headers["Content-Length"] = str(len(query))
else:
method = method or "GET"
if self.username and self.password and not headers.has_key("Authorization"):
headers["Authorization"] = "Basic %s" % gsub(
"\012", "", encodestring("%s:%s" % (self.username, self.password))
)
try:
h = HTTP()
h.connect(self.host, self.port)
h.putrequest(method, self.rurl)
for hn, hv in headers.items():
h.putheader(translate(hn, dashtrans), hv)
h.endheaders()
if query:
h.send(query)
ec, em, headers = h.getreply()
response = h.getfile().read()
except:
raise NotAvailable, RemoteException(NotAvailable, sys.exc_value, self.url, query)
if ec == 200:
return (headers, response)
self.handleError(query, ec, em, headers, response)