Wenn ich diesen Aufruf ausführe, antwortet mir Discourse mit {locked: false}.
Ich habe versucht, den Beitrag manuell zu sperren und den API-Aufruf zu inspizieren, den der Discourse-Client macht. Er sieht meinem Aufruf aus meiner Anwendung sehr ähnlich, mit der Ausnahme der Authentifizierungsmethode, vielleicht.
Ich bin mir nicht sicher, was los ist, irgendwelche Ideen?
Ich sehe kein offensichtliches Problem. Haben Sie das erhalten, indem Sie How to reverse engineer the Discourse API befolgt haben? Das würde ich tun, um zu helfen, wenn ich an meinem Computer wäre.
Die API zum Sperren eines Beitrags ist hier dokumentiert: Discourse API Docs, aber ja, ich habe auch versucht, rückzuentwickeln, wie der Discourse-Client dies tut, und es sieht meiner Vorgehensweise aus meiner Anwendung sehr ähnlich.
Was anscheinend einen String-Vergleich durchführt.
Das bedeutet, dass Sie \"locked\": \"true\" und nicht \"locked\": true senden müssten und dass die Dokumentation oder der Code aktualisiert werden müsste, um dieses Verhalten widerzuspiegeln oder zu ändern.
Der Browser sendet keine JSON-Anfrage, sondern Content-Type: application/x-www-form-urlencoded, was den Parameter als String interpretiert, und deshalb funktioniert es im Browser.