وسائل لوڈ ہو رہے ہیں... لوڈنگ...

منتظمین کو HTTP درخواست پیغام بھیجنے کا حل حاصل کریں

مصنف:ایجاد کاروں کی مقدار - خواب, تخلیق: 2020-09-23 16:24:42, تازہ کاری: 2023-09-27 19:37:55

img

منتظمین کو HTTP درخواست پیغام بھیجنے کا حل حاصل کریں

ٹیسٹنگ ، ڈیبگنگ پالیسی کوڈ ، اصلی ڈسک پر روبوٹ چلانے کے دوران اکثر تبادلے کے انٹرفیس کی خرابی کی اطلاع ملتی ہے ، اس وقت تبادلے کے انٹرفیس API دستاویزات سے پوچھ گچھ کرنے کے لئے ، متعلقہ خرابی کی اطلاع کی معلومات حاصل کرنے کے لئے ، تبادلے کے API تکنیکی کسٹمر سروس سے مشورہ کرنے کے لئے ہمیشہ خرابی کی اطلاع کی درخواست کی اطلاع فراہم کرنے کی ضرورت ہوتی ہے ، جس سے خرابی کی وجہ کا تجزیہ کیا جاسکتا ہے۔

اس وقت جب ہم اخبارات نہیں دیکھ سکتے ہیں تو ہمیں کوئی مسئلہ نہیں ہے۔ اس مضمون میں ہم دو حلوں پر تبادلہ خیال کرتے ہیں۔

1، سکیپی لائبریری کی کھرچنی کا استعمال کرتے ہوئے Python پر بھیجنے کی درخواست کا پیغام پرنٹ کریں

سب سے پہلے نصب کریں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اس کے بعد ، ہم نے اس کے بارے میں مزید معلومات حاصل کرنے کے لئے اس ویب سائٹ کا استعمال کیا۔

پوسٹ کی درخواست:

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 پاس ورڈ کی چابی Passphrase:abc123(ڈیمو) درخواست کردہ جسمانی ڈیٹا:{"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()
}

ٹرمینل پر پرنٹ شدہ پوسٹ کی درخواست کا پیغام:img

اس ٹرمینل پر پرنٹ شدہ جی ای ٹی کی درخواست کا پیغام:img


متعلقہ

مزید