原文出处:http://blog.chinaunix.net/uid-429659-id-3988033.html
利用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)