我检查了如何在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
)未正确发送到服务器。我在这里想念什么?
(希望网站的丢失不是回答此问题的问题,如果可以,请让我知道也许我可以要求提及他们的网站)
答案 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”。注意“:”而不是“ =”