簡體   English   中英

發送POST請求正文

[英]Send body of 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. Empty gene sequence passed for blast analysis. Please enter a valid gene sequence. 因此,這意味着該序列(即QUERY )沒有正確發送到服務器。 我在這里想念什么?

(希望Ps網站的丟失不是回答這個問題的問題,如果可以,請讓我知道也許我可以要求提及他們的網站) 在此處輸入圖片說明

我猜您要提交給該特定網站的字符串/序列是問題。 我在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"
}

您確定它應該是“ QUERY = <>”嗎? 原因可能是主體的格式不正確。 通常,它采用JSON格式,如“ title:information”。 注意“:”而不是“ =”

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM