관리자가 HTTP 요청 메시지를 보내기 위한 솔루션

저자:작은 꿈, 2020-09-23 16:24:42, 업데이트: 2023-09-27 19:37:55

img

관리자가 HTTP 요청 메시지를 보내기 위한 솔루션

테스트, 디뷰팅 정책 코드, 실제 디스크 로봇을 실행할 때 거래소 인터페이스 오류 보고가 자주 발생하는 경우, 거래소 인터페이스 API 문서를 검색하여 관련 오류 정보를 검색하고, 거래소 API 기술 고객 서비스를 상담할 때 항상 오류 보고 요청 보고서를 제공해야하며, 오류 보고의 원인을 분석하는 데 사용됩니다.

이 시점에 뉴스 보도가 없는 것은 문제가 될 수 있는 시점입니다. 이 글에서는 두 가지 해결책을 함께 논의합니다.

1, 파이썬의 scapy 라이브러리 스크랩팩을 사용하여 전송 요청을 인쇄합니다.

먼저 설치scapy모듈

pip3 install scapy 

그리고 나서 파이썬 전략을 만들죠.

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 패킷을 (https가 그것을 처리할 수 없는 경우) 잡을 수 있습니다.

이 패킷 스크래퍼 로봇을 실행하면 디뷰팅 툴을 사용하여 요청을 보낼 수 있습니다.

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

포토바크를 잡는 로봇이 인쇄한 메시지:img

우리는 이 기사를 복사해서 읽을 수 있습니다. 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 

Host: www.baidu.com우리가 포괄적 인 것을 잡기 위해 무시 할 수 있습니다.Host: www.okex.com이 글의 링크는 다음과 같습니다./api/swap/v3/instruments/BTC-USD-SWAP/ticker이 사이트는 BTC의 상시 계약 거래 데이터를 요청하기 위한 사이트입니다.

POST 요청:

POST 
/api/swap/v3/order 
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 
Content-Length: 25 
Content-Type: application/json; charset=UTF-8 
Ok-Access-Key: d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4 
Ok-Access-Passphrase: abc123 
Ok-Access-Sign: h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0= 
Ok-Access-Timestamp: 2020-09-23T08:43:49.906Z Accept-Encoding: gzip 

{"aaa":"111","bbb":"222"}

이 문서는 이 문서를 참조하십시오./api/swap/v3/orderᅳ 확인된 액세스 키:d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4(디모네스트레이션용, 진짜 KEY가 아닌) 이 요청에 서명하십시오:h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0=API KEY 비밀 키 Passphraseabc123(도모) 요청된 신체 데이터:{"aaa":"111","bbb":"222"}

이 방법은 요청 보고서를 관찰하고 인터페이스 요청에 오류가 발생한 이유를 분석할 수 있습니다.

2., 로컬 감청 요청

두 번째 방법은 로봇을 만들지 않고 애플 컴퓨터의 맥을 사용하여Netcat : https://baike.baidu.com/item/Netcat/9952751?fr=aladdinᄋ 청취 요청 및 신문 인쇄.

터미널에서 명령어를 사용합니다.nc -l 8080이 사이트는 네트을 운영하고 있습니다.

예를 들어:img

또한, 우리는 원본에 호스트를 배포하고, 디뷰팅 도구에서 다음과 같은 코드를 사용하여 요청을 전송합니다.

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 요청 메시지는 다음과 같습니다:img

GET 요청 메시지는 기기에서 인쇄되었습니다.img


관련

더 많은