【问题标题】:Send body of POST request发送 POST 请求的正文
【发布时间】:2019-08-15 17:24:55
【问题描述】:

我在 Firefox 中检查了请求是如何发送到网站的:

(不幸的是,我不得不将网站 URL 更改为假的,以防止服务器表单被请求过多)。

我尝试在 python 中执行此请求:

import requests
import json

seq = 'ATGGCAGACTCTATTGAGGTC'

url = 'http://www.test.com'
body = {'QUERY': seq}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(body), headers=headers)
print(r.text)

但是,当这样做时,网站说:Empty gene sequence passed for blast analysis. Please enter a valid gene sequence. 这意味着序列(即QUERY)没有正确发送到服务器。我在这里错过了什么?

(P.s.希望没有网站不是问题回答这个问题,如果是请告诉我也许我可以要求提及他们的网站)

【问题讨论】:

  • 刚刚意识到我在一个不允许使用 IMGUR 的国家......将尽快添加屏幕截图!
  • 我不明白我应该从这个问题中得到什么? @mad_
  • 我试过了(在我的情况下是json = body),但仍然是相同的“错误”。我怎样才能看到它是否是形式编码的? @mad_

标签: python post request


【解决方案1】:

我猜您提交到该特定网站的字符串/序列是问题所在。我针对 POST 接受网站运行了您的示例代码:

import requests
import json

seq = 'ATGGCAGACTCTATTGAGGTC'

url = 'http://httpbin.org/post'
body = {'QUERY': seq}
headers = {'Content-type': 'application/json', 'Accept': 'text/plain'}
r = requests.post(url, data=json.dumps(body), headers=headers)
print(r.text)

得到了这个结果,这表明您的查询格式正确:

{
  "args": {}, 
  "data": "{\"QUERY\": \"ATGGCAGACTCTATTGAGGTC\"}", 
  "files": {}, 
  "form": {}, 
  "headers": {
    "Accept": "text/plain", 
    "Accept-Encoding": "gzip, deflate", 
    "Content-Length": "34", 
    "Content-Type": "application/json", 
    "Host": "httpbin.org", 
    "User-Agent": "python-requests/2.22.0"
  }, 
  "json": {
    "QUERY": "ATGGCAGACTCTATTGAGGTC"
  }, 
  "origin": "2.122.222.8, 2.122.222.8", 
  "url": "https://httpbin.org/post"
}

【讨论】:

    【解决方案2】:

    您确定它应该是“QUERY=”吗?原因可能是正文格式不正确。通常它是 JSON 格式,如“标题:信息”。注意 ':' 而不是 '='

    【讨论】:

    • 同样你可以看到下面的人做了“查询:”而不是“查询=”并获得了成功的POST
    • O,但他是在一个 POST 接受站点上这样做的,所以我不知道它有多大用处,因为主要问题是让您的特定网站接受 POST。
    • 我没有更改 Firefox 向我显示请求的发送方式,它使用的是 =
    • 如果我们知道您将 POST 发送到哪个站点可能会更有帮助?除非你不想透露。
    猜你喜欢
    • 2019-05-16
    • 2021-03-12
    • 1970-01-01
    • 1970-01-01
    • 2016-07-03
    • 1970-01-01
    • 2017-11-18
    • 1970-01-01
    • 2019-03-15
    相关资源
    最近更新 更多