Chinaunix首页 | 论坛 | 博客
  • 博客访问: 5095824
  • 博文数量: 921
  • 博客积分: 16037
  • 博客等级: 上将
  • 技术积分: 8469
  • 用 户 组: 普通用户
  • 注册时间: 2006-04-05 02:08
文章分类

全部博文(921)

文章存档

2020年(1)

2019年(3)

2018年(3)

2017年(6)

2016年(47)

2015年(72)

2014年(25)

2013年(72)

2012年(125)

2011年(182)

2010年(42)

2009年(14)

2008年(85)

2007年(89)

2006年(155)

分类: Python/Ruby

2013-11-13 13:58:36

利用httplib 以http发送post请求网上很多资料。https的处理方式,有所不同,弄不好,报480等错误。

正确的处理方式,上代码:

  1. #HTTPS发送POST请求范例
  2. import httplib
  3. import ssl
  4. import socket
  5. import base64
  6. import simplejson
  7. try:
  8.     receipt = '{"data":1111}'
  9.     encodedReceipt = base64.b64encode(receipt)
  10.     param= simplejson.dumps({"receipt-data":encodedReceipt})
  11.     API_url = "xx.xxx.com"
     
  1.     #关键代码开始
  2.     httpClient = httplib.HTTPSConnection(API_url)
  3.     sock = socket.create_connection((httpClient.host, httpClient.port))
  4.     httpClient.sock = ssl.wrap_socket(sock, httpClient.key_file, httpClient.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
  5.     httpClient.request('POST', "/verifyReceipt/", param)
  6.     returnData = httpClient.getresponse().read()
  7.     data = simplejson.loads(returnData)
  8. except Exception, e:
  9.     print e
  10. finally:
  11.     if httpClient:
  12.         httpClient.close()

附代码:

  1. import httplib, ssl, socket

  2. conn = httplib.HTTPSConnection(URL.hostname)
  3. sock = socket.create_connection((conn.host, conn.port), conn.timeout, conn.source_address)
  4. conn.sock = ssl.wrap_socket(sock, conn.key_file, conn.cert_file, ssl_version=ssl.PROTOCOL_TLSv1)
  5. conn.request('POST', URL.path + URL.query)





阅读(8423) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~