ฉันได้รับคำสั่ง curl ต่อไปนี้ซึ่งเป็นส่วนหนึ่งของเอกสารประกอบ API และฉันกำลังพยายามใช้งานโดยใช้ไลบรารีคำขอ
curl -v --cookie cookie.txt -X POST -H 'Accept: application/json' -F 'spot[photo]'[email protected] -F 'spot[description]'=spot_description -F 'spot[location_id]'=9 -F 'spot[categories][]'='See the Sights' -F 'spot[categories][]'='Learn Something' http://some.server.com/api/v1/spots
รหัสหลามของฉันมีลักษณะดังนี้:
import requests
import json
_user = 'redacted'
_password = 'redacted'
_session = requests.session()
_server = 'http://some.server.com'
_hdr = {'content-type': 'application/json', 'accept': 'application/json'}
_login_payload = {
'user': {
'email': _user,
'password': _password
}
}
r = _session.post(_server + "/users/sign_in", data=json.dumps(_login_payload), headers=_hdr)
print json.loads(r.content)
_spot_payload = {
'spot': {
'photo': '@rails.gif',
'description': 'asdfghjkl',
'location_id': 9,
'categories': ['See the Sights',]
}
}
r = _session.post(_server + '/api/v1/spots', data=json.dumps(_spot_payload), headers=_hdr)
print json.loads(r.content)
ฉันได้ยินมาว่าคุณสามารถใช้ open('file').read() เพื่อโพสต์ไฟล์ได้ แต่ตัวเข้ารหัส json ไม่ชอบสิ่งนี้มากนัก และฉันไม่แน่ใจเกี่ยวกับวิธีการแก้ไข