REST-API: Put gibt "302 Found" statt JSON zurück

Hallo, ich versuche mit PUT Artikel zu aktualisieren. Die Artikel werden erfolgreich im Shop gespeichert. Leider bekomme ich aber anstatt eines JSON-Strings folgende Rückgabe: [code]

302 Found # Found

The document has moved here.

[/code] SW-Version: CE 4.0.5 Build Rev 6956 Hoster: Profihost Kann mir da jem. weiterhelfen? Danke. lg Christoph

Hi, vermutlich kann ich dir nicht so richtig weiterhelfen (wir verwenden die v4 nicht), aber hast du einfach mal versucht den Request an die genannte URL zu schicken? REST basierte Services folgen Umleitungen nämlich nicht (bzw. dürfen es laut Spezifikation nicht) automatisch. Was mich hierbei allerdings ein wenig irritiert, ist der Statuscode 302, der keinen Sinn ergibt. Wenn überhaupt müsste es meiner Meinung nach ein 301 sein.

Ich habe auch den Fehler. Leider nie ne AW bekommen. Darf ich fragen bei welchem Provider du bist?

Wir sind bei Profihost. Ich teste jetzt mal bei World4You. Da der Fehler bei der Testumgebung auf localhost nicht auftritt, befürchte ich dass es am Hoster liegt.

Wurde das Problem mal weiter dokumentiert? Ich habe gerade das Gleiche.

ich habe das selbe Problem, wenn ich einen Artikel updaten möchte.

Hallo, in diesem Zusammenhang gab es in jüngerer Zeit noch Anpassungen, das also bitte unbedingt nochmal mit der aktuellen 4.0.7. gegenprüfen. Weiterhin gibt es auch einige Plugins, die im Zusammenspiel mit der REST-API Probleme bereiten können: programmierung-f56/rest-api-put-oder-post-t9821.html Hier empfiehlt es sich grundsätzlich, Fremdanbieter-Plugins zu deinstallieren und zu überprüfen, ob das Verhalten noch immer auftritt. Wenn die Plugins in den globalen Postdispatch schreiben, kann es zu Fehlern kommen. lG Daniel

Hallo Daniel, ich habe das Problem bei einem Demoshop den ich auf Profihost.com erstellen hab lassen. Den Shop habe ich am 26.04, also letzten Freitag inkl. Demodaten erstellen lassen. Fremdplugins, etc. sind hier keine installiert worden. Eine Abfrage der Version und Revision ergibt folgendes: Shopware Version 4.07 Shopware Revision 20130313 Ich schicke den „PUT“ mit HttpWebRequest über .NET und authentifiziere mich folgendermaßen: myNetworkCredential = New NetworkCredential(Me.ApiUser, Me.ApiSchluessel) Request.Credentials = myNetworkCredential

Hallo, hier das gleiche Problem auf einem 1&1 Server. Lokal geht das Update per PUT ohne Probleme. Fehlermeldung: HTTP: 302 Could not decode json json_last_error: Es ist kein Fehler aufgetreten Raw: Das Update wird trotzdem ausgeführt, dauert allerdings sehr lange pro Artikel. Evtl. hat es etwas mit der Weiterleitung der Authorization-Header zu tun? Änderung in htaccess: RewriteRule .\* - [E=HTTP\_AUTHORIZATION:%{HTTP:Authorization}] Änderung in shopware.php: if (isset($\_SERVER['REDIRECT\_HTTP\_AUTHORIZATION'])){ $\_SERVER['HTTP\_AUTHORIZATION'] = $\_SERVER['REDIRECT\_HTTP\_AUTHORIZATION']; } Betrifft Shopware Version 4.0.7 sowie 4.0.8 Viele Grüße

Folgendes behebt das Problem temporär: In der Datei /engine/Shopware/Controllers/Api/Articles.php in der function putAction() die letzte Zeile auskommentieren. #$this->Response()->setHeader(‚Location‘, $location);

2 Likes

Wir laufen gerade bei zwei Kunden von uns in das selbe Problem und gehen davon aus, dass es an einer ErrorDocument Definition für den HTTP Status Code 302 seitens Profihost liegt, welche man auch leider nicht in der eigenen .htaccess rückgängig machen kann. Die Definition müsste für das korrekte Funktionieren der Shopware API von Profihost deaktiviert werden. Lennart Diedrich

Hi Lennart, danke für den Hinweis, wir hatten vermutet, dass es in manchen Fällen ein Konfigurationsproblem sein könnte. Wenn du da Neuigkeiten hast, kannst du das vielleicht nochmal melden, dann dokumentieren wir das nochmal für alle, die in ähnliche Probleme laufen. Danke und schöne Grüße, Daniel

[quote=“mfritz”]Folgendes behebt das Problem temporär: In der Datei /engine/Shopware/Controllers/Api/Articles.php in der function putAction() die letzte Zeile auskommentieren. #$this->Response()->setHeader(‘Location’, $location);[/quote] Hallo, danke für den Lösungsvorschlag! Ich teste grade die WaWi Amicron Faktura 11 Pro in Verbindung mit Shopware 4.2.3. Durch Auskommentierung der Datei taucht der 302 Fehler beim Artikelexport nicht mehr auf, allerdings wird der Artikelpreis nicht korrekt übergeben. Ich habe einen Artikel in Höhe von 1,00 € Netto in Amicron angelegt. Alle Preise werden in Netto sowohl im Shopware-Backend (Frontend Bruttopreise) als auch in Amicron geführt. Nun passiert beim Artikelexport von Amicron -> Shopware folgendes: Im Frontend des Shops taucht ein Artikelpreis von 1,42 € (inkl. 19 % MwSt.) anstatt 1,19 €, im Backend wird der Artikel in der Artikelübersicht mit 1,42 € geführt, anstatt mit 1,00 € und im Backend unter Artikeldetails werden 1,19 € angezeigt anstatt 1,00 € netto :frowning:

[quote=“moci”]Wir sind bei Profihost. Ich teste jetzt mal bei World4You. Da der Fehler bei der Testumgebung auf localhost nicht auftritt, befürchte ich dass es am Hoster liegt.[/quote] Wir sind auch bei Profihost und hatten das gleiche Problem. Seit dem Update auf SW 4.3 funktioniert es aber bestens.

Ja, mit Shopware 4.3 funktioniert die REST API nun auch bei Profihost! Falls jemand noch mehr zu dem Thema wissen möchte: https://github.com/ShopwareAG/shopware-4/pull/165