반응형
다음 curl 요청을 pycurl로 변환하려고합니다.
curl -v
-H Accept:application/json -H Content-Type:application/json -d "{
name: 'abc',
path: 'def',
target: [ 'ghi' ]
}" -X POST http://some-url
다음 파이썬 코드가 있습니다.
import pycurl, json
c = pycurl.Curl()
c.setopt(pycurl.URL, 'http://some-url')
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json'])
data = json.dumps({"name": "abc", "path": "def", "target": "ghi"})
c.setopt(pycurl.POST, 1)
c.setopt(pycurl.POSTFIELDS, data)
c.setopt(pycurl.VERBOSE, 1)
c.perform()
print curl_agent.getinfo(pycurl.RESPONSE_CODE)
c.close()
이것을 실행하면 오류 415 : 지원되지 않는 미디어 유형이 있으므로 변경했습니다.
c.setopt(pycurl.HTTPHEADER, ['Accept: application/json'])
으로:
c.setopt(pycurl.HTTPHEADER, [ 'Content-Type: application/json' , 'Accept: application/json'])
이번에는 400 : 잘못된 요청입니다. 그러나 컬이있는 bash 코드가 작동합니다. 파이썬 코드에서 무엇을 수정해야하는지 아십니까?
해결 방법
bash 예제에서 속성 target
은 배열이고 Python 예제에서는 문자열입니다.
이 시도:
data = json.dumps({"name": "abc", "path": "def", "target": ["ghi"]})
import requests
data = {"name": "abc", "path": "def", "target": ["ghi"]}
response = requests.post('http://some-url', json=data)
print response.status_code
참조 페이지 https://stackoverflow.com/questions/31826814
반응형
'파이썬' 카테고리의 다른 글
파이썬 How to create a list of objects? (0) | 2020.11.20 |
---|---|
파이썬 How to convert PIL Image.image object to base64 string? (0) | 2020.11.20 |
파이썬 easy_install보다 pip를 사용하는 이유는 무엇입니까? (0) | 2020.11.20 |
파이썬 문자열에서 하위 문자열의 첫 번째 발생을 어떻게 찾을 수 있습니까? (0) | 2020.11.20 |
파이썬 Tkinter에서 툴팁을 어떻게 표시합니까? (0) | 2020.11.20 |
댓글