Použitím requests
poslať JSON do webovej služby. Vypisovanie tohto JSONu takto:
response = requests.post("https://ws.foo.net/search",
json=({
"filters": [
{
"filters": [
{
"field": "type",
"type": "EQ",
"value": "THING"
}
]
},
{
"filters": [
{
"field": "responseCode",
"type": "EQ",
"value": "301"
},
{
"field": "responseCode",
"type": "EQ",
"value": "302"
}
]
},
{
"filters": [
{
"field": "State",
"type": "EQ",
"value": "CONFIRMED"
}
]
}
]
}), auth=("name", "password"))
Chcem použiť premenné v JSON, takže konštruovať, že zo slovníka pomocou json.dumps
.
Nižšie sa zobrazí chyba 400:
Nepodarilo sa prečítať JSON: Nie je možné vytvoriť inštanciu hodnoty typu [jednoduchý typ, classcom.linkco.ws.v1.model.V1SearchQuery] z JSON String; žiadny konštruktor / továrenská metóda
import json
import requests
jsonObject = {"filters": [{"filters": [{"field": "type","type": "EQ","value": "WEB_SITE"}]},{"filters": [{"field": "name","type": "EQ","value": "something"}]},{"filters": [{"field": "State","type": "EQ","value": "CONFIRMED"}]}]}
response = requests.post("https://ws.foo.net/search", json=json.dumps(jsonObject), auth=("name", "password"))
print json.dumps(jsonObject)
print "----"
print response.text
Tlačím json.dumps(jsonObject)
skontrolovať a produkuje platné JSON a funguje, ak skopíruje do klienta REST I "m pomocou - to" je dobré (dobre - to pravdepodobne nie je z dôvodu, že som sa nepodarilo nájsť).
odpovede:
1 pre odpoveď č. 1Malá chyba spôsobuje problémy
response = requests.post("https://ws.foo.net/search",
json=jsonObject # was json.dumps(jsonObject),
auth=("name", "password"))
To by malo fungovať dobre
Pozrite si, že balík požiadaviek prevedie python dict na Json (nie vy);