【转发】利用httplib.HTTPSConnection 发送post请求的方式
转发地址:
利用httplib 以http发送post请求网上很多资料。https的处理方式,有所不同,弄不好,报480等错误。
正确的处理方式,上代码:
#HTTPS发送POST请求范例 import httplib import ssl import socket import base64 import simplejson try: receipt = '{"data":1111}' encodedReceipt = base64.b64encode(receipt) param= simplejson.dumps({"receipt-data":encodedReceipt}) API_url = "xx.xxx.com" #关键代码开始 httpClient = httplib.HTTPSConnection(API_url) sock = socket.create_connection((httpClient.host, httpClient.port)) httpClient.sock = ssl.wrap_socket(sock, httpClient.key_file, httpClient.cert_file, ssl_version=ssl.PROTOCOL_TLSv1) httpClient.request('POST', "/verifyReceipt/", param) returnData = httpClient.getresponse().read() data = simplejson.loads(returnData) except Exception, e: print e finally: if httpClient: httpClient.close()
注意关键代码:(再附一遍代码)
import httplib, ssl, socket conn = httplib.HTTPSConnection(URL.hostname) sock = socket.create_connection((conn.host, conn.port), conn.timeout, conn.source_address) conn.sock = ssl.wrap_socket(sock, conn.key_file, conn.cert_file, ssl_version=ssl.PROTOCOL_TLSv1) conn.request('POST', URL.path + URL.query)
注:后续自己针对这块的内容,需要完全的做一个总结