2012-06-28 33 views
9

Tôi đang cố tạo FormRequest có thể gửi kiểu nội dung: application/json.Biểu mẫu Phế liệuYêu cầu gửi JSON

Đây là những gì tôi cố gắng:

yield FormRequest("abc.someurl.com", formdata=json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'}, callback=self.parseResult2) 

Nếu tôi sử dụng json.dumps() để xử lý các dữ liệu mẫu trong = formdata, lỗi tôi nhận được là

"exceptions.ValueError: need more than 1 value to unpack"

tôi không thể chỉ cần sử dụng danh sách như trong

formdata={"referenceId":123,"referenceType":456} 

FormRequest hoạt động nhưng không được máy chủ chấp nhận.

import requests 
import json 
result = requests.post(url, json.dumps({"referenceId":123,"referenceType":456}), headers={'content-type':'application/json'}) 

Nó hoạt động từ dấu nhắc lệnh python như ở trên.

Bất kỳ ý tưởng nào?

-km

+2

Toàn bộ stacktrace (lỗi) là gì? –

Trả lời

14

FormRequest là để mô phỏng một hình thức HTML (ví dụ application/x-www-form-urlencoded). Có vẻ như bạn chỉ muốn POST dữ liệu với Yêu cầu của mình. Vì bạn đề cập đến loại nội dung của 'application/json', bạn có thể muốn thực hiện một việc như sau:

request = Request(url, method='POST', 
        body=json.dumps(my_data), 
        headers={'Content-Type':'application/json'})