# REST API: "Could not decode json json\_last\_error: No error occurred"

**URL:** <https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618>\
**Category:** Programmierung\
**Created:** [22. November 2018 um 08:51 UTC](https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618 "2018-11-22T08:51:30Z")\
**Posts on this page:** 6\
**Page:** 1

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [22. November 2018 um 08:51 UTC](https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618/1 "2018-11-22T08:51:30Z")

</div>

Guten Morgen zusammen,

wir benutzen aktuell Showpare Version 5.1.1 & ich wollte mich an die REST API machen.

Ich habe die API wie in der Dokumentation beschrieben eingebunden und ein erstes Skript geschrieben:

```
delete('articles/3');

```

Ich wollte einfach nur testen ob die API so funktioniert, allerdings bekomme ich immer folgenden Error:

```
HTTP: 0 Could not decode json json_last_error: No error occurred Raw:

```

Kann mir jemand dabei helfen wie ich diesen Fehler vermeiden kann?

Wir benutzen PHP 5.6.17

&nbsp;

Mit freundlichen Grüßen,

ent\_dev

---

<div class="post-metadata">

**Author:** ![stormerMike](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@stormerMike](https://forum.shopware.com/u/stormerMike)\
**Post date:** [22. November 2018 um 09:41 UTC](https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618/2 "2018-11-22T09:41:06Z")

</div>

Würde mal versuchen mit Postman, etc. den API-Call zu machen um den Aufruf zu verifizieren.

Fehler könnte auf fehlende/falsche HTTP Methode/Header bzw. einem nicht/falsch gesetztem Request Body hindeuten

**HTTP Methode** sollte **DELETE** sein.

Header sollte gesetzt sein: **Content-Type** = **application/json**

**Request Body** sollte bei delete **leer** sein

Mit deinen Infos ist eine bessere “Diagnose” leider nicht möglich.

---

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [22. November 2018 um 10:32 UTC](https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618/3 "2018-11-22T10:32:34Z")

</div>

> [@stormerMike schrieb:](https://forum.shopware.com/profile/29983/stormerMike "stormerMike")
> 
> Würde mal versuchen mit Postman, etc. den API-Call zu machen um den Aufruf zu verifizieren.
> 
> Fehler könnte auf fehlende/falsche HTTP Methode/Header bzw. einem nicht/falsch gesetztem Request Body hindeuten
> 
> **HTTP Methode** sollte **DELETE** sein.
> 
> Header sollte gesetzt sein: **Content-Type** = **application/json**
> 
> **Request Body** sollte bei delete **leer** sein
> 
> Mit deinen Infos ist eine bessere „Diagnose“ leider nicht möglich.

Vielen Dank für deine Antwort. Mit Postman bekomme ich bei Delete nun folgendes Ergebnis:

```
{
    "success": true,
    "data": []
}

```

Der HTTPRequest sieht nun so aus (DigestAuth):

```
php

$request = new HttpRequest();
$request->setUrl('URL_ZU_API');
$request->setMethod(HTTP_METH_DELETE);

$request->setHeaders(array(
  'Postman-Token' => '8fdb6ad6-8a98-4f27-bff7-c0736a82c8a8',
  'cache-control' => 'no-cache',
  'Authorization' => 'XYZ',
  'Content-Type' => 'application/json'
));

try {
  $response = $request->send();

  echo $response->getBody();
} catch (HttpException $ex) {
  echo $ex;
}

```

&nbsp;

---

<div class="post-metadata">

**Author:** ![stormerMike](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@stormerMike](https://forum.shopware.com/u/stormerMike)\
**Post date:** [22. November 2018 um 10:54 UTC](https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618/4 "2018-11-22T10:54:09Z")

</div>

Schön das es funktioniert.

Den **Postman-Token Header** solltest du aber nicht brauchen.

---

<div class="post-metadata">

**Author:** ![ent\_dev](https://avatars.discourse-cdn.com/v4/letter/e/45deac/32.png) [@ent\_dev](https://forum.shopware.com/u/ent_dev)\
**Post date:** [22. November 2018 um 10:57 UTC](https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618/5 "2018-11-22T10:57:27Z")

</div>

Okay, alles klar und dann kann ich mir den Postman-Code quasi packen und ihn dann beliebig für meine Bedürfnisse anpassen (PUT/DELETE/POST) ?

---

<div class="post-metadata">

**Author:** ![stormerMike](https://avatars.discourse-cdn.com/v4/letter/s/e0b2c6/32.png) [@stormerMike](https://forum.shopware.com/u/stormerMike)\
**Post date:** [22. November 2018 um 11:17 UTC](https://forum.shopware.com/t/rest-api-could-not-decode-json-json-last-error-no-error-occurred/56618/6 "2018-11-22T11:17:09Z")

</div>

> [@ent\_dev schrieb:](https://forum.shopware.com/profile/28777/ent_dev "ent\_dev")
> 
> Okay, alles klar und dann kann ich mir den Postman-Code quasi packen und ihn dann beliebig für meine Bedürfnisse anpassen (PUT/DELETE/POST) ?

Mit Postman hat der Code ja nichts mehr zu tun. Ich meinte in meiner ursprünglichen Antwort mit „Postman den API-Call zu machen“ eigentlich das ausführen des Requests im externen Program wie Postman. Weiß nicht ob du das auch gemacht hast aber solange es jetzt funktioniert passt’s ja.

Bei z.B. bei PUT Aktionen musst du halt auch den HTTP Body korrekt mit dem JSON Payload befüllen.

Ich hab z.B. in meinem Import Skript [GuzzleHttp](https://github.com/guzzle/guzzle) verwendet und darum dann eigene Client Klassen gebaut. Zum Beispiel setze ich In meinem Client dann nur base\_uri, username/authkey per config array und rufe dann z.B.

```
$swArticle = $articleClient->fetchAllArticles();

```

auf.
