2017-11-15 11 views
1

私はこの要求を真似する必要があります。これは、pythonを使って次のPOSTリクエストを模倣する正しい方法ですか?

enter image description here

テキスト部分

POST /comeback_campaigns/entry HTTP/1.1 
Host: ishin-global.aktsk.com 
Accept: */* 
X-Platform: android 
X-Language: en 
X-ClientVersion: 3.6.1 
X-AssetVersion: 1510308536 
X-DatabaseVersion: 1510542279 
X-RequestVersion: 2 
Content-Type: application/json 
Authorization: MAC id="TVTYcxqDlO61l0yQYQnaKirWEVOPcVp2O4FCZOAb0pLrP++EEsKaqrlSho8VQRLFLV+4wvAV53DBwJyNuqUfqg==", nonce="1510773145:5a7b051af7f3e76e5b14f4e79753589f", ts="1510773145", mac="Eot1a1QPvyhecW3wNjWCW1JAENjuOjfjyxltmcguYqc=" 
Content-Length: 5 

JSONの一部

null 

私は要求機能を使用して、私のコードでは、このようにそれを書いた

url='http://ishin-global.aktsk.com/comeback_campaigns/entry' 

myhead={'Accept':'*/*', 
    'X-Platform':'android', 
    'X-Language':'en', 
    'X-ClientVersion':'3.6.1', 
    'X-AssetVersion':'1510308536', 
    'X-DatabaseVersion':'1510542279', 
    'X-RequestVersion':'2', 
    'Content-Type':'application/json', 
    'Authorization':'MAC id='+mac_key +', nonce='+TS+':'+nonce+', ts='+ TS + ', mac='+mac_gen, 
    'Content-Length':'5' 
    } 


payload='null' 

r=requests.post(url, headers=myhead, json=payload) 

これは正しい方法ですか?私はrequest.post(url, auth, header)のような認証の部分を送らなければなりませんか?使用する前に、イメージ内のアクセストークンをOAuth2に変換する必要がありますか?

oauth2_mac_railsを言ってエラーになっIM /アクセストークンは、右の承認後にMAC IDです

をaccess_token_required。

+0

「json = 'null''を送信すると、空の文字列を送信するか、このフィールドを使用しないでください。 – alfasin

+1

コードやHTTPリクエストのスクリーンショットを投稿しても、その質問にコピーして貼り付けることはできません。 – surfer190

+0

@alfasin私はjson = {}を送信するように変更しましたが、認証にmac_ID(この場合はアクセストークン)が含まれていてもまだエラーが残っています。 最後に怒っIDが間違っている場合、それは私が 'requests'はあなたのためのContent-Lengthを処理するという感覚を持っているので、あなたはおそらくできるさまざまなエラーに – cromat

答えて

0

Authorizationキーの個々の部分の前後に引用符(")を追加します。

'Authorization': 'MAC id="' + mac_key + '", nonce="' + TS + ':' + nonce + '", ts="' + TS + '", mac="' + mac_gen + '"' 

あなたは現在の中間引用符なしで1つの長い文字列を送信している:

'Authorization': 'MAC id=TVTxxx, nonce=151xxx:5a7xxx, ts=151xxx, mac=Eotxxx' 

ご参照POSTは、次のようになりながら:

'Authorization': 'MAC id="TVTxxx", nonce="151xxx:5a7xxx", ts="151xxx", mac="Eot..."' 
+1

ハハハありがとう! MAC IDの引用符を必要とする問題でした。それ以外の部分は必要ありません – cromat

+0

これが正しい答えだったら、それを受け入れて、問題が解決済みとマークされるようにしてください。 – bastelflp

+1

申し訳ありませんが、私はあなたの答えを受け入れ、これを解決済みとしていますか? – cromat

関連する問題