【问题标题】:How to make a POST request in Python?如何在 Python 中发出 POST 请求?
【发布时间】:2015-06-20 23:17:18
【问题描述】:

我正在尝试使用 Python 发出 POST 请求 这是我的 POST 请求:

POST http://services.data.shom.fr/sos/client
Content-Type: application/json
{
  "request": "GetObservation",
  "service": "SOS",
  "version": "2.0.0",
  "procedure": [
    "http://shom.fr/maregraphie/procedure/3"
  ],
  "offering": [
    "http://shom.fr/maregraphie/offering/3"
  ],
  "observedProperty": [
    "http://shom.fr/maregraphie/observedProperty/WaterHeight/4"
  ],
  "featureOfInterest": [
    "http://shom.fr/maregraphie/featureOfInterest/5"
  ],
  "temporalFilter": [
    {
      "during": {
        "ref": "om:phenomenonTime",
        "value": [
          "2014-01-01T00:00:00Z",
          "2014-12-31T00:00:00Z"
        ]
      }
    }
  ]
}

这是我的 Python 脚本:

#!/usr/bin/python3.4

import requests
import json


url = 'http://services.data.shom.fr/sos/client'
payload = {
  'request': 'GetObservation',
  'service': 'SOS',
  'version': '2.0.0',
  'procedure': [
    'http://shom.fr/maregraphie/procedure/3'
  ],
  'offering': [
    'http://shom.fr/maregraphie/offering/3'
  ],
  'observedProperty': [
    'http://shom.fr/maregraphie/observedProperty/WaterHeight/4'
  ],
  'featureOfInterest': [
    'http://shom.fr/maregraphie/featureOfInterest/5'
  ],
  'temporalFilter': [
    {
      'during': {
        'ref': 'om:phenomenonTime',
        'value': [
          '2014-01-01T00:00:00Z',
          '2014-12-31T00:00:00Z'
        ]
      }
    }
  ]
}
headers = {'Content-Type': 'application/json'}
r = requests.post(url,data = payload, headers=headers)
f = open('text.txt', 'w')
f.write(r.text)
f.close()

我收到一个语法错误,我知道我的有效负载变量的语法不正确,但我无法弄清楚。有什么想法吗?

【问题讨论】:

  • requests.post(url,data = json.dumps(payload), headers=headers)
  • 您发布的内容没有SyntaxError(s) 只是很多 PEP8 问题。
  • 仅供参考,下次请也发布异常回溯,以便我们为您提供帮助。

标签: python python-requests


【解决方案1】:

非常感谢,它有效! 这是最终的python代码:

#!/usr/bin/python3.4

import requests
import json

# Server URL's
url = 'http://services.data.shom.fr/sos/client'
#
payload = {
    'request': 'GetObservation',
    'service': 'SOS',
    'version': '2.0.0',
    'procedure': ['http://shom.fr/maregraphie/procedure/3'],
    'offering': ['http://shom.fr/maregraphie/offering/3'],
    'observedProperty': ['http://shom.fr/maregraphie/observedProperty/WaterHeight/4'],
    'featureOfInterest': ['http://shom.fr/maregraphie/featureOfInterest/5'],
    'temporalFilter': [{'during': {'ref': 'om:phenomenonTime','value': ['2014-01-01T00:00:00Z','2014-12-31T00:00:00Z']}}]
}
#Header for the POST request
headers = {'Content-Type': 'application/json'}

#Request
r = requests.post(url,data = json.dumps(payload), headers=headers)
#Write response in a text file
f = open('text.txt', 'w')
f.write(r.text)
f.close()

【讨论】:

    猜你喜欢
    • 2015-04-12
    • 2014-07-07
    • 1970-01-01
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 2017-11-28
    • 2017-11-17
    • 1970-01-01
    相关资源
    最近更新 更多