【发布时间】:2012-07-19 20:54:02
【问题描述】:
我正在尝试使用 Python 成功连接到 LinkPoint 网关。对于那些不熟悉他们的 API 的人,您会获得一个用于身份验证的 .pem 文件。
我在使用此文件和通过 SSL 创建安全连接时遇到问题。
根据他们的 API 文档(顺便说一句,还有很多不足之处),我相信配置应该如下所示:
HOST = 'secure.linkpt.net'
API_URL = 'https://secure.linkpt.net/lpc/servlet/lppay'
PORT = 1129
cert_key = my_cert_key.pem
使用此信息和有效的XML 字符串如何创建此连接?
我对 Python 中的 HTTP 连接很陌生。我已经使用POST 和urllib2 成功实现了与其他API 的连接。自然地,我的第一次尝试是从类似的方法开始的,希望我能偶然找到解决方案。
类似:
headers = { 'User-Agent' : 'Rico',
'Content-type' : 'text/xml; charset=\"UTF-8\"',
'Content-length' : len(self.xml_string),
}
# POST to First Data (Link Point)
req = urllib2.Request(API_URL, self.xml_string, headers)
response = urllib2.urlopen(req)
self.handleResponse(response.read())
我不希望这会奏效,因为我没有提供有关 cert_key 或 PORT 的任何信息。
在此尝试之后,我尝试使用从另一个 stackoverflow 帖子的解决方案中找到的类似方法。不幸的是,由于我没有 ca_certs 或 cert 文件(据我所知),因此我无法做到这一点。
我尝试使用 Requests,但找不到让我理解的文档/示例。
我也尝试过使用Twisted,我真的希望我能用它做点什么,但这感觉就像试图用破坏球打开一扇门。对我来说,这感觉有点矫枉过正。我只需要一个简单的连接/请求/响应...这似乎过于复杂。
我的下一个尝试将是PycURL,但在此过程中遇到了足够的绝望,我想在深入研究之前我会来这里看看是否有人有一些好的建议。
如果您认为我应该重新访问这些工具之一,请告诉我。我并没有花太多时间在这些上——只是让我的脚湿透了。如果您还可以向我指出一个很好的示例或详细的文档,那就太好了。
另外,我不希望自己使用标准的 SSL 库来建立连接 - 如果没有必要,我不想重新发明轮子。
【问题讨论】:
标签: python xml api https linkpoint