Die Ressourcen sind geladen. Beförderung...

Lösungen für die Übermittlung von HTTP-Anfragen von Administratoren

Schriftsteller:Die Erfinder quantifizieren - Kleine Träume, Erstellt: 2020-09-23 16:24:42, Aktualisiert: 2023-09-27 19:37:55

获取托管者发送http请求报文的解决方案

Lösungen für die Übermittlung von HTTP-Anfragen von Administratoren

Bei Tests, Debugging-Policies und beim Betrieb von Roboter auf dem Festplatten wird häufig ein Fehler bei der Anschlussmeldung des Austauschs aufgetreten. Es ist wichtig, die API-Dokumentation des Austauschs zu durchsuchen, um entsprechende Fehlerinformationen zu erhalten.

In diesem Artikel werden wir zwei Lösungen gemeinsam erörtern.

1. Drucken Sie mit dem Python-Scapy-Repertoire-Scraper einen Versandbericht

Erst installierenscapyModule

pip3 install scapy 

Dann erstellen Sie eine Python-Strategie:

from scapy.all import *

def Method_print(packet):
    ret = "\n".join(packet.sprintf("{Raw:%Raw.load%}").split(r"\r\n"))
    Log(ret)

sniff(
    iface='eth0',
    prn=Method_print,
    lfilter=lambda p: "GET" in str(p) or "POST" in str(p),
    filter="tcp")

Dann wird ein Bot erstellt, der diese Strategie verwendet, und er greift das HTTP-Paket, das vom Server des Hosts ausgegeben wird (https kann das nicht greifen und hat etwas damit zu tun).

Wenn wir diesen Bot ausführen, können wir mit dem Debugging-Tool eine Anfrage versenden, und der Roboter greift die Anfrage.

function main(){
    // 要把基地址设置为其它http协议的地址,如果不设置交易所的地址一般都是https,这样是抓不到包的
    exchange.SetBase("http://www.baidu.com")    
    
    // POST 请求
    exchange.IO("api", "POST", "/api/swap/v3/order", "aaa=111&bbb=222")
    
    // GET 请求
    exchange.SetContractType("swap")
    exchange.GetTicker()
}

Die Botschaft, die der Roboter ausgedruckt hat:获取托管者发送http请求报文的解决方案

Wir können es kopieren und den Artikel lesen: GET fordert einen Bericht:

GET 
/api/swap/v3/instruments/BTC-USD-SWAP/ticker 
HTTP/1.1 
Host: www.baidu.com 
User-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/35.0.1916.153 Safari/537.36 Accept-Encoding: gzip 
可以看到请求报文中的链接为:```/api/swap/v3/instruments/BTC-USD-SWAP/ticker```,是要请求BTC本位的永续合约行情数据。

POST请求报文:

Nachricht /api/swap/v3/order HTTP/1.1 Gastgeber: www.baidu.com Benutzer-Agent: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, wie Gecko) Chrome/35.0.1916.153 Safari/537.36 Inhaltslänge: 25 Inhaltstyp: Anwendung/json; Charset=UTF-8 OK-Zugriffsschlüssel: d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4 Ok-Zugriff-Passphrase: abc123 OK-Zugangssignal: h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0= Ok-Access-Zeitstempel: 2020-09-23T08:43:49.906Z Akzeptieren-Codierung: gzip

Ich habe dich nicht gesehen.

可以看到请求路径为:```/api/swap/v3/order```。
验证的Access key : ```d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4``` (演示用,并非真KEY)
本次请求的签名:```h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0=```
API KEY 秘钥Passphrase:```abc123``` (演示用)
请求的Body数据:```{"aaa":"111","bbb":"222"}```。

这样就可以观察请求报文了,分析接口请求遇到报错的原因。

### 2、本地监听请求

第二种方法,不需要创建机器人,使用苹果电脑Mac自带的```Netcat``` : https://baike.baidu.com/item/Netcat/9952751?fr=aladdin 。监听请求,并打印报文。

在终端,使用命令```nc -l 8080```,运行起来Netcat。

如图:
![获取托管者发送http请求报文的解决方案](/upload/asset/16ea458dfeb3d64ea2e9.png) 

同样我们在本机部署一个托管者,然后在调试工具中,使用如下代码发送请求。

Die Funktion "main() { exchange.SetBase ((http://127.0.0.1:8080) // Hier wird die Adresse des Basisgeräts auf den eigenen Computer geändert, Port 8080, Netcat kann auf Anfragen hören // POST-Anfrage exchange.IO ((api,POST,/api/swap/v3/order,aaa=111&bbb=222)

// GET 请求
exchange.SetContractType("swap")
exchange.GetTicker()

} “`

Die Post-Request-Nachricht, die auf dem Terminal gedruckt wurde:获取托管者发送http请求报文的解决方案

Der get-Anfrage-Message, der auf dem Terminal gedruckt wurde:获取托管者发送http请求报文的解决方案


Inhalte dazu

Weitere Informationen