В процессе загрузки ресурсов... загрузка...

Решение для отправки сообщения с просьбой http от администратора

Автор:Изобретатели количественного измерения - мечты, Создано: 2020-09-23 16:24:42, Обновлено: 2023-09-27 19:37:55

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

Решение для отправки сообщения с просьбой http от администратора

При тестировании, дешифровке кода политики, при работе на диске бота часто встречаются ситуации, когда сообщения об ошибках интерфейсов биржи, при этом для запроса документации об API интерфейсов биржи, для запроса соответствующей информации об ошибках, для консультации технического обслуживания API биржи всегда необходимо предоставить сообщение о запросе об ошибках, чтобы проанализировать причину ошибки.

В этой статье мы рассмотрим два решения, которые помогут решить проблему, если вы не можете найти информацию в газете.

1, с помощью Python скапи-скрепер распечатывает запрос на отправку

Сначала установкаscapyМодуль

pip3 install scapy 

И тогда мы создаем стратегию 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")

Затем создается бот, использующий эту политику, который захватывает HTTP-пакеты, отправленные сервером хостера, к которому он принадлежит.

Запустите этот робот, и вы сможете отправить запрос с помощью инструмента для дешифровки, и робот схватит пакет. В инструменте для дешифровки мы запишем код для отправки запроса.

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

Например, в одном из писем, опубликованном в Twitter, говорится:获取托管者发送http请求报文的解决方案

Мы можем скопировать и просмотреть статью: В сообщении 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请求报文:

ПОСТ /api/swap/v3/order /api/swap/v3/order /api/swap/v3/order /api/swap/v3/order /swap/swap/v3/order /swap/swap/v3/order /api/swap/v3/order /swap/swap/v3/order /swap/swap/swap/v3/order /swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap/swap HTTP/1.1 Ведущий: www.baidu.com Пользовательский агент: Mozilla/5.0 (Macintosh; Intel Mac OS X 10_9_3) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/35.0.1916.153 Safari/537.36 Длина содержания: 25 Тип содержимого: application/json; charset=UTF-8 Окей, ключ доступа: d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4 Ok-Access-Passphrase: abc123 ОК-доступный сигнал: h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0= Ok-Access-Timestamp: 2020-09-23T08:43:49.906Z Принимать кодирование: gzip

Я не знаю, что делать.

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

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

function main (() { exchange.SetBase ((http://127.0.0.1:8080) // Здесь адрес базы изменяется на локальный, порт 8080, Netcat может прослушивать запрос. // POST запрос exchange.IO ((api, POST, /api/swap/v3/order, aaa=111&bbb=222)

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

} “`

На этом терминале напечатана POST-запрос:获取托管者发送http请求报文的解决方案

На терминале напечатан текст запроса GET:获取托管者发送http请求报文的解决方案


Содержание

Больше информации