发送POST请求正文

时间:2019-08-15 17:24:55

标签: python post request

我检查了如何在firefox中将请求发送到网站:

(不幸的是,我不得不将网站URL更改为伪造的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)未正确发送到服务器。我在这里想念什么?

(希望网站的丢失不是回答此问题的问题,如果可以,请让我知道也许我可以要求提及他们的网站)enter image description here

2 个答案:

答案 0 :(得分:0)

我猜您要提交给该特定网站的字符串/序列是问题。我在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"
}

答案 1 :(得分:0)

您确定它应该是“ QUERY = <>”吗?原因可能是主体的格式不正确。通常,它采用JSON格式,如“ title:information”。注意“:”而不是“ =”