2012-06-28 5 views
9

Ich versuche, eine FormRequest zu erstellen, die Inhaltstyp senden kann: Application/JSON. HierScrapy FormRequest Senden von JSON

ist das, was ich versuche:

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

Wenn ich json.dumps() verwenden, um die Formulardaten in den Formulardaten = zu verarbeiten, die Fehler, die ich bekommen ist

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

Ich kann nicht nur die Verwendung Liste wie in

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

Der FormRequest funktioniert, wird aber vom Server nicht akzeptiert.

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

Es funktioniert von der Python-Eingabeaufforderung wie oben.

Irgendwelche Ideen?

-KM

+2

Was ist der ganze Stacktrace (Fehler)? –

Antwort

14

FormRequest ist ein HTML-Formular zum Simulieren (z.B. Anwendung/x-www-form-urlencoded). Es klingt, als ob Sie nur Daten mit Ihrer Anfrage POST senden möchten. Da Sie einen Inhaltstyp von "application/json" erwähnen, möchten Sie wahrscheinlich so etwas tun:

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