En la carga de los recursos... Cargando...

Solución para obtener mensajes de petición de HTTP de los administradores

El autor:Los inventores cuantifican - sueños pequeños, Creado: 2020-09-23 16:24:42, Actualizado: 2023-09-27 19:37:55

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

Solución para obtener mensajes de petición de HTTP de los administradores

Cuando se prueba, desactiva el código de la política o se ejecuta un robot en el disco real, a menudo se encuentran informes de errores de la interfaz del intercambio, cuando se consulta la documentación de la API de la interfaz del intercambio, se consulta la información de los errores relacionados, y cuando se consulta al servicio técnico de la API del intercambio, siempre se requiere un mensaje de solicitud de error para analizar la causa del error.

En este artículo, vamos a analizar dos soluciones para solucionar el problema de no ver la información en los periódicos.

1, Imprimir mensajes de petición enviados con el paquete de captura de la biblioteca de Python

Primero instalarscapyEl módulo

pip3 install scapy 

Y luego crear una estrategia de Python:

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")

Luego se crea un robot que usa esta política y que se encarga de capturar el paquete http enviado por el servidor de su host.

Si se ejecuta este bot de captura de paquetes, se puede enviar una solicitud con la herramienta de depuración y el bot captura el paquete. En la herramienta de depuración se escribe el código para enviar la solicitud.

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()
}

El mensaje que imprimió el robot:获取托管者发送http请求报文的解决方案

En la página de Facebook del blog, el blog de la organización, el blog de los activistas, el blog de los activistas y el blog de los activistas, se puede leer: El mensaje solicitado por GET:

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请求报文:

Posibilidad de transferencia /api/swap/v3/orden HTTP/1.1 Anfitrión: www.baidu.com Agente de usuario: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, como Gecko) Chrome/35.0.1916.153 Safari/537.36 Contenido-Llevo: 25 Tipo de contenido: aplicación/json; conjunto de caracteres=UTF-8 Ok-Access-Key: d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4 Ahora tienes que irte. Ok-Acceso-Palabra de acceso: abc123 - Sí, sí, sí. - ¿Qué es eso? ¿Qué es eso? Ok-Access-Timestamp: 2020-09-23T08:43:49.906Z Aceptar el código: gzip

¿Por qué no lo haces?

可以看到请求路径为:```/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) 

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

La función principal ((() { exchange.SetBase ((http://127.0.0.1:8080) // Aquí cambia la dirección de la base al equipo local, el puerto 8080, Netcat puede escuchar las solicitudes // POST de la solicitud exchange.IO ((api, POST, /api/swap/v3/order, aaa=111&bbb=222)

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

} “`

El mensaje de solicitud de POST impreso en el terminal:获取托管者发送http请求报文的解决方案

El mensaje de solicitud de GET impreso en el terminal:获取托管者发送http请求报文的解决方案


Contenido relacionado

Más contenido