我想用它tempfile.NamedTemporaryFile()来写一些内容然后打开那个文件.我写了以下代码:
tf = tempfile.NamedTemporaryFile()
tfName = tf.name
tf.seek(0)
tf.write(contents)
tf.flush()
Run Code Online (Sandbox Code Playgroud)
但我无法打开此文件,并在记事本或类似的应用程序中查看其内容.有没有办法实现这个目标?为什么我不能这样做:
os.system('start notepad.exe ' + tfName)
Run Code Online (Sandbox Code Playgroud)
在末尾
我似乎无法让握手正常工作.
cert = 'path/to/cert_file.pem'
url = 'https://example.com/api'
requests.get(url, cert=cert, verify=True)
Run Code Online (Sandbox Code Playgroud)
当我在本地使用它时,这是很好的,我在物理上有文件.我们在heroku上托管我们的应用程序并使用environvariables.
请求模块似乎不接受证书作为字符串.例如.
$ export CERTIFICATE="long-list-of-characters"
requests.get(url, cert=get_env('CERTIFICATE'), verify=True)
Run Code Online (Sandbox Code Playgroud)
我也尝试过这样的事情:
cert = tempfile.NamedTemporaryFile()
cert.write(CERTIFICATE)
cert.seek(0)
requests.get(url, cert=cert.name, verify=True)
Run Code Online (Sandbox Code Playgroud)
首先,它在本地工作,但不在heroku上工作.无论如何,它不是一个坚实的解决方案.我收到SSL握手错误.
有什么建议?
我正在尝试使用 python 将 xml 发布到站点。我必须包含证书,但不确定如何执行此操作。在我的计算机上本地指定证书的文件路径是否足够?
任何人都可以向我展示如何在请求中包含证书的示例吗?
import http.client, urllib.parse
xml="""<?xml version="1.0" encoding="UTF-8"?>
<home>
<bathroom>1</bathroom>
<kitchen>1</kitchen>
<street>515</street>
</home>);"""
headers = {"username": "password"}
conn = http.client.HTTPSConnection("someurl.com", cert_file="D:\Users\Username\certificate.p12")
conn.request("POST", "/to/this/place", xml, headers)
response = conn.getresponse()
print(response.status, response.reason)
data = response.read()
print(data)
conn.close()
Run Code Online (Sandbox Code Playgroud)