API-Anfrage gibt text/html zurück und kein JSON-Objekt

Per @sam’s wunderbare Anleitung habe ich den richtigen Endpunkt für meine gewünschte Anfrage gefunden:

https://domain.com/admin/reports/bulk?reports[dau_by_mau][facets][]=prev_period&reports[dau_by_mau][start_date]=2022-07-27&reports[dau_by_mau][end_date]=2022-08-28&reports[dau_by_mau][limit]=50

Ich habe keine Form-Header gefunden und angenommen, dass keine benötigt werden. Diese Anfrage in Dev Tools ergibt eine JSON-Antwort, genau die, die ich möchte/brauche. Ich versuche, eine Python-GET-Anfrage zu stellen:

url = "https://domain.com/admin/reports/bulk?reports[dau_by_mau][facets][]=prev_period&reports[dau_by_mau][start_date]=2022-07-27&reports[dau_by_mau][end_date]=2022-08-28&reports[dau_by_mau][limit]=50.json"
headers = CaseInsensitiveDict()
headers["Content-Type"] = "multipart/form-data"
headers["Content-Type"] = "application/json"
headers["Api-Key"] = SECRET.API
headers["Api-Username"] = "system"

resp = requests.get(url, headers=headers)

print(resp.status_code)
print(resp.headers)

Ich erhalte zwar eine 200, aber sie wird mit einem 'Content-Type': 'text/html' zurückgegeben und nicht mit JSON (was ich möchte). Und ich bin mir nicht einmal sicher, ob der zurückgegebene Text die Textversion der gewünschten Daten ist.

Hat auch nicht geholfen.

Was mache ich also falsch?

1 „Gefällt mir“

Sie haben eine doppelte Kopfzeile:

Content-Type bezieht sich darauf, was Sie senden, und Accept darauf, was Sie zurückhaben möchten.
Sie müssen dies also ändern in

headers["Content-Type"] = "multipart/form-data"
headers["Accept"] = "application/json"
5 „Gefällt mir“

Entschuldigung, das ist ein nicht zusammenhängendes Relikt. Ich hatte ein Problem ohne die zweite Kopfzeile.

Diese funktioniert. Danke!

2 „Gefällt mir“

This topic was automatically closed 30 days after the last reply. New replies are no longer allowed.