मेरे पास पाइथन 3.6 में अनुरोध पुस्तकालय से प्रतिक्रिया प्राप्त करने में कच्ची सामग्री से संबंधित एक प्रश्न है। मैं डेटा एकीकरण और स्वचालन करने के लिए http पोस्ट पर कब्जा करने और उन्हें अजगर पर पुनर्प्राप्त करने के लिए ngrok का उपयोग कर रहा हूं। मेरा प्रश्न यह है: जबकि एन्कोडिंग यूटीएफ -8 है और सामग्री प्रकार पोस्ट के स्रोत से एप्लिकेशन/जेसन है, प्रतिक्रिया प्राप्त करने के लिए केवल कच्चे-अपठनीय-पाठ निकाय प्रदर्शित होता है। मैंने urllib का उपयोग करके पार्स करने का प्रयास किया है। कोड बहुत सरल है, जैसा कि मैं मान रहा हूं कि इसे ngrok दस्तावेज दिए जाने चाहिए:

url ="http://localhost:4040/api/requests/http"
bin = requests.get(url=url headers = {'Content-Type': 'application/json ;charset=utf-8'} )
print(bin.json())

यह प्रतिक्रिया है:

{
'uri': '/api/requests/http',
'requests': [
    {
        'uri': '/api/requests/http/5ad38f700000001f',
        'id': '5ad38f700000001f',
        'tunnel_name': 'command_line (http)',
        'remote_addr': '23.96.4.241',
        'start': '2018-04-15T13:44:16-04:00',
        'duration': 16037600,
        'request': {
            'method': 'POST',
            'proto': 'HTTP/1.1',
            'headers': {
                'Content-Length': ['2848'],
                'Content-Type': ['application/json; charset=utf-8'],
                'Expect': ['100-continue'],
                'Request-Context': [
                    'appId=cid-v1:bac45fa9-8f8e-4ddb-8e70-d648fe57a27a'
                ],
                'Request-Id': ['|ohznIKUg+KI=.409af374_22.'],
                'User-Agent': ['Go-http-client/1.1'],
                'X-Forwarded-For': ['23.96.4.241'],
                'X-Ms-Request-Id': ['|ohznIKUg+KI=.409af374_22.'],
                'X-Ms-Request-Root-Id': ['ohznIKUg+KI='],
                'X-Original-Host': ['a35b204d.ngrok.io'],
                'X-Requested-With': ['XMLHttpRequest']
            },
            'uri': '/',
            'raw':
                'UE9TVCAvIEhUVFAvMS4xDQpIb3N0OiBsb2NhbGhvc3QNClVzZXItQWdlb'
                'nQ6IEdvLWh0dHAtY2xpZW50LzEuMQ0KQ29udGVudC1MZW5ndGg6IDI4ND'
                'gNCkNvbnRlbnQtVHlwZTogYXBwbGljYXRpb24vanNvbjsgY2hhcnNldD1'
                '1dGYtOA0KRXhwZWN0OiAxMDAtY29udGludWUNClJlcXVlc3QtQ29udGV4'
                'dDogYXBwSWQ9Y2lkLXYxOmJhYzQ1ZmE5LThmOGUtNGRkYi04ZTcwLWQ2N'
                'DhmZTU3YTI3YQ0KUmVxdWVzdC1JZDogfG9oem5JS1VnK0tJPS40MDlhZj'
                'M3NF8yMi4NClgtRm9yd2FyZGVkLUZvcjogMjMuOTYuNC4yNDENClgtTXM'
                'tUmVxdWVzdC1JZDogfG9oem5JS1VnK0tJPS40MDlhZjM3NF8yMi4NClgt'
                'TXMtUmVxdWVzdC1Sb290LUlkOiBvaHpuSUtVZytLST0NClgtT3JpZ2luY'
                'WwtSG9zdDogYTM1YjIwNGQubmdyb2suaW8NClgtUmVxdWVzdGVkLVdpdG'
                'g6IFhNTEh0dHBSZXF1ZXN0DQoNCnsiRm9ybSI6eyJJZCI6IjEiLCJJbnR'
                'lcm5hbE5hbWUiOiJPcmRlckZvcm0iLCJOYW1lIjoiT3JkZXIgRm9ybSJ9'
                'LCIkdmVyc2lvbiI6NiwiJGV0YWciOiJXL1wiZGF0ZXRpbWUnMjAxOC0wN'
                'C0xNVQxNyUzQTQ0JTNBMTQuNzMzMDI4OFonXCIiLCJFbnRyeSI6eyJBZG'
                '1pbkxpbmsiOiJodHRwczovL3d3dy5jb2duaXRvZm9ybXMuY29tL1hGYWN'
                '0b3JNZWFsczEvMS9lbnRyaWVzLzE3IiwiRGF0ZUNyZWF0ZWQiOiIyMDE4'
                'LTA0LTE1VDE3OjQ0OjE0LjUxM1oiLCJEYXRlU3VibWl0dGVkIjoiMjAxO'
                'C0wNC0xNVQxNzo0NDoxNC41MTNaIiwiRGF0ZVVwZGF0ZWQiOiIyMDE4LT'
                'A0LTE1VDE3OjQ0OjE0LjUxM1oiLCJFZGl0TGluayI6Imh0dHBzOi8vd3d'
                '3LmNvZ25pdG9mb3Jtcy5jb20vWEZhY3Rvck1lYWxzMS9PcmRlckZvcm0j'
                'MWlveUh5WGdRVlJ2dlZpLWRxYi00dW0tZHVWU216VVhsYjZNWW03VU9FQ'
                'SQqIiwiTGFzdFBhZ2VWaWV3ZWQiOm51bGwsIk51bWJlciI6MTcsIk9yZG'
                'VyIjpudWxsLCJPcmlnaW4iOnsiQ2l0eSI6bnVsbCwiQ291bnRyeUNvZGU'
                'iOm51bGwsIklwQWRkcmVzcyI6IjE0OC43NS4xODEuMTMxIiwiSXNJbXBv'
                'cnRlZCI6ZmFsc2UsIlJlZ2lvbiI6bnVsbCwiVGltZXpvbmUiOm51bGwsI'
                'lVzZXJBZ2VudCI6Ik1vemlsbGEvNS4wIChXaW5kb3dzIE5UIDEwLjA7IF'
                'dpbjY0OyB4NjQ7IHJ2OjU5LjApIEdlY2tvLzIwMTAwMTAxIEZpcmVmb3g'
                'vNTkuMCJ9LCJQYXltZW50VG9rZW4iOm51bGwsIlN0YXR1cyI6IlN1Ym1p'
                'dHRlZCIsIlRpbWVzdGFtcCI6IjIwMTgtMDQtMTVUMTc6NDQ6MTQuNTEzW'
                'iIsIlZpZXdMaW5rIjoiaHR0cHM6Ly93d3cuY29nbml0b2Zvcm1zLmNvbS'
                '9YRmFjdG9yTWVhbHMxL09yZGVyRm9ybSNWYWhXbm1HcnZxOUE2SlpPWWh'
                'aZTMtNWJHdWEzSEVEdUZTRjNoRWsxMmI4JCoifSwiSWQiOiIxLTE3Iiwi'
                'T3JnYW5pemF0aW9uIjoib2theSIsIkJha2VkQ2hpY2tlblRlbmRlcnMiO'
                'iI4IiwiQkJRQ2hpY2tlbiI6IjgiLCJMb3dDYXJiQkJRQ2hpY2tlbiI6Ij'
                'AiLCJUZXJpeWFraUNoaWNrZW4iOiIwIiwiTG93Q2FyYlRlcml5YWtpQ2h'
                'pY2tlbiI6IjUiLCJHZW5lcmFsVHNvQ2hpY2tlbiI6IjAiLCJMb3dDYXJi'
                'R2VuZXJhbFRzb0NoaWNrZW4iOiIwIiwiQ2hpY2tlbkJ1cnJpdG9Cb3dsI'
                'joiMCIsIkxvd0NhcmJDaGlja2VuQnVycml0b0Jvd2wiOiIwIiwiU291dG'
                'hXZXN0Q2hpY2tlbkJvd2wiOiIyIiwiRW1haWwiOiJpc2Nvb2xAZ21haWw'
                'uY29tIiwiTmFtZSI6eyJGaXJzdCI6Ikl0cyIsIkZpcnN0QW5kTGFzdCI6'

मैं क्षमा चाहता हूं अगर मुझे कुछ भी स्पष्ट नहीं दिख रहा है, तो मैं पहली बार एनग्रोक और वेब हुक डेटा से निपट रहा हूं। मैं किसी भी अंतर्दृष्टि और किसी भी व्याख्यान की सराहना करता हूं। मुझे लगता है कि समस्या एन्कोडिंग हो सकती है?

शुक्रिया

0
IDontKnowCode 15 अप्रैल 2018, 22:36

1 उत्तर

सबसे बढ़िया उत्तर

वह बेस 64 एन्कोडेड एचटीपी पैकेट है। तुम कर सकते हो

import binascii
data = bin.json()
packet = binascii.a2b_base64(data["requests"][0]["reuqest"]["raw"]))

और तुम पाओगे

b'POST / HTTP/1.1\r\nHost: localhost\r\nUser-Agent: Go-http-
client/1.1\r\nContent-Length: 2848\r\nContent-Type: applicat
ion/json; charset=utf-8\r\nExpect: 100-continue\r\nRequest-C
ontext: appId=cid-v1:bac45fa9-8f8e-4ddb-8e70-d648fe57a27a\r
...
0
tdelaney 15 अप्रैल 2018, 23:07