2017-12-05 2 views
0

params에는 '@'가 포함 된 request.get을 사용하려고했지만 출력에서는 '% 40'이 (가) 있습니다. 어떻게이 디코딩을 해독 할 수 있습니까? '?. URL productId에 % 40type = ReferenceID'대신 PARAMS의@ pyams가 @params를 요청했습니다.

+0

[this] (https://stackoverflow.com/questions/8628152/url-decode-with-python-3)가 무엇입니까? –

+0

이것도 검사했지만 작동하지 않습니다. – TheRutubeify

+0

['urllib.parse.unquote'] (https://docs.python.org/3/library/urllib.parse.html#urllib.parse.unquote) 사용 : 'unquote ("url? productId. % 40type = ReferenceID")'는 ' 'url? productId. @ type = ReferenceID''를 반환합니다. 그게 뭐가 잘못 됐어? –

답변

1

사용 "데이터"인수 - Python3

import requests 

payload = {'OPERATION-NAME': 'findItemsByProduct','[email protected]':'ReferenceID'} 

req = requests.post(url, params=payload) 

print(req.url) 

출력은 사용

. 헤더 (이 경우 json)를 지정하고 json.dumps()를 사용하여 페이로드 dict를 json으로 변환해야합니다.

import requests 
import json 


payload = {'[email protected]':'ReferenceID'} 

req = requests.post(url, headers={'Content-Type': 'application/JSON'}, data=json.dumps(payload)) 

print(req.url) 
+0

OP에 답장을 보았지만 설명을 제공하지 않았습니다. 당신의 대답에 어떤 맥락을 포함 시키십시오. –

+0

작동하지 않습니다 – TheRutubeify

+0

헤더를 포함하는 것을 잊어 버렸습니다. 다시 시도하고 알려주세요. 유효한 URL이 있는지 확인하십시오. BTW 당신이 얻는 것은 요청 (req)이 아니므로 응답이므로 req로 req의 이름을 변경해야합니다. – epinal

관련 문제