【问题标题】:Python HTTP Request to replace bash curlPython HTTP 请求替换 bash curl
【发布时间】:2016-06-09 16:19:06
【问题描述】:

我正在将一些自动化脚本从 bash 移植到 python,它们几乎都是以下格式的 curl 命令:

curl -k -H "Content-Type: application/json" -X POST -d '{               "Request": {
                          "MessageID": "xxxx",
                          "MessageDateTime": "xxxxx",
                          "SourceSystem": "xxxx",

           }
}' https://myUrl.xxx

在 Python 中准确构建它的最佳方法是什么?到目前为止,我有:

import requests

headers = {'Content-Type': 'application/json'}
payload = {'All the data'}
conn = httplib.HTTPConnection("myUrl.xxx")
conn.request("POST", "", payload, headers)
response = conn.getresponse()
print response

我想确保 -k、-d 和 -x bash 选项反映在此脚本中。谢谢!

【问题讨论】:

  • 您导入请求但不使用它。

标签: python bash curl


【解决方案1】:

您可以直接使用requests.post-k对应verify=False

from datetime import datetime as DateTime
import requests
import json

URL = "https://myUrl.xxx"

message = {
    "Request": {
        "MessageID": "xxxx",
        "MessageDateTime": DateTime.now().isoformat(),
        "SourceSystem": "xxxx",
    }
}

response = requests.post(URL, data=json.dumps(message), verify=False, headers={"Content-Type":"application/json"})
data = response.json()

【讨论】:

  • 完美,谢谢。我是 Python 新手,所以在消息密钥对结构中,如何在“MessageDateTime”之后插入包含当前 ISO 数据时间戳的变量?谢谢!
  • @EschersEnigma import datetime; now = datetime.datetime.now() ... "MessageDateTime": now
  • 你也可以说json=message,它会为你做json.dumps和标题。
猜你喜欢
  • 2019-08-17
  • 2016-10-14
  • 1970-01-01
  • 2021-11-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多