Docker Http درخواست پیغام حاصل کرنے کے لئے حل

مصنف:نینا باداس, تخلیق: 2022-04-27 10:55:50, تازہ کاری: 2022-04-27 10:57:37

Docker 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(){
    // The base address should be set to the address of other http protocols. If the address of a platform is not set, it is generally https, so the packet cannot be captured.
    exchange.SetBase("http://www.baidu.com")    
    
    // POST request 
    exchange.IO("api", "POST", "/api/swap/v3/order", "aaa=111&bbb=222")
    
    // GET request 
    exchange.SetContractType("swap")
    exchange.GetTicker()
}

پیکٹ کی گرفتاری کے بوٹ کی طرف سے چھپی ہوئی معلومات:Solutions to Obtaining Docker Http Request Message

ہم درخواست کے پیغامات کو کاپی کر سکتے ہیں اور ایک نظر ڈالیں: 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 
You can see the link in the request message is: ```/api/swap/v3/instruments/BTC-USD-SWAP/ticker```, which is to request the crypto-margined (BTC) perpetual contract market data.

POST request message:

پوسٹ /api/swap/v3/order HTTP/1.1 میزبان: www.baidu.com صارف ایجنٹ: موزیلا/5.0 (میکنٹوش؛ انٹیل میک OS X 10_9_3) ایپل ویب کٹ / 537.36 (KHTML ، جیسے گیکو) کروم / 35.0.1916.153 سفاری / 537.36 مواد کی لمبائی: 25 مواد کی قسم: درخواست/json؛ Charset=UTF-8 ٹھیک ہے رسائی کلید: d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4 اوکے رسائی کا پاس ورڈ: abc123 ٹھیک ہے رسائی کا نشان: h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0= اوکے رسائی ٹائم اسٹیمپ: 2020-09-23T08:43:49.906Z قبول انکوڈنگ: gzip

{aaa:111,bbb:222}

You can see the request path is: ```/api/swap/v3/order```.
Verified Access key: ```d487230f-ccccc-aaaaa-bbbbb-268fef99cfe4``` (for demo, not real KEY)
Signature of this request: ```h1x6f80rhhkELobJcO1rFyMgUUshOlmgjRBHD+pLvG0=```
API KEY Passphrase: ```abc123``` (for demo)
Requested Body data: ```{"aaa":"111","bbb":"222"}```.

Thus, we can observe the request messages, and analyze the causes of errors encountered by the interface. 

### 2. Local Listener Request 

The second solution, without creating a bot, is to use the ```Netcat``` that comes with the Mac system: https://baike.baidu.com/item/Netcat/9952751?fr=aladdin. Listen to requests and print messages.

In the terminal, use the command ```nc -l 8080``` to run Netcat.

As is shown in the picture:
![Solutions to Obtaining Docker Http Request Message](/upload/asset/16ea458dfeb3d64ea2e9.png) 

Similarly, we deploy a docker on this machine, and then in the debugging tool, use the following code to send a request.

اہم فنکشن exchange.SetBase(http://127.0.0.1:8080) // یہاں ہم مقامی، پورٹ 8080 پر بیس ایڈریس میں ترمیم، اور پھر Netcat کی درخواستوں کو سن سکتے ہیں // POST درخواست exchange.IO ((api, POST, /api/swap/v3/order, aaa=111&bbb=222)

// GET request 
exchange.SetContractType("swap")
exchange.GetTicker()

} “`

POST درخواست پیغام ٹرمینل پر طباعت:Solutions to Obtaining Docker Http Request Message

ٹرمینل پر پرنٹ GET درخواست پیغام:Solutions to Obtaining Docker Http Request Message


مزید معلومات