2012-06-28 13 views
9

Estoy tratando de crear un FormRequest que pueda enviar content-type: application/json.Scrapy FormRequest enviando JSON

Aquí es lo que trato:

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

Si uso json.dumps() para procesar los datos del formulario en las = FormData, el error que consigo es

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

No puedo utilizar el lista como en

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

El FormRequest funciona pero no es aceptado por el servidor.

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

Funciona desde el símbolo del sistema de python como en el ejemplo anterior.

¿Alguna idea?

-KM

+2

¿Cuál es el stacktrace completo (error)? –

Respuesta

14

FormRequest es para la simulación de un formulario HTML (por ejemplo, aplicación/x-www-form-urlencoded). Parece que simplemente desea enviar datos con su Solicitud. Como mencionas un tipo de contenido de 'application/json', probablemente quieras hacer algo como esto:

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