Homepage | Products | OX Knowledge Base | Support | Try Now | Contact | Company
OX Logo
Results 1 to 5 of 5
  1. #1
    strgb Guest

    Default PUT-Request über die HTTP-API: "400 invalid json object"

    Hallo OX-Team,

    wir nutzen den OX6 und möchten gerne die HTTP-API als Schnittstelle zu unserem Asterisk nutzen. Eine Authentifizierung via API mit Setzen des Cookies klappt. GET-Requests sind auch kein Problem, es ist die PUT-Methode, die mir zu schaffen macht.

    Mit folgendem PUT-Request versuche ich über PHP eine Antwort zu bekommen:
    $putData = '[{"pattern":"F"}]';
    $client->put('/ajax/contacts?action=search&columns=20,1,5&session='.$j sonData['session'], $putData);

    Die Syntax geht für mich aus der Doku leider nicht eindeutig hervor. Ein Beispiel hätte mir sicher geholfen (kleiner konstruktiver Hinweis).

    Als Antwort bekomme ich dann folgenden Header...
    - date = Thu, 30 Apr 2009 08:12:04 GMT
    - server = Apache/2.2.3 (Univention) mod_jk/1.2.18 PHP/5.2.0-8+.78.200809291755 mod_ssl/2.2.3 OpenSSL/0.9.8c
    - content-length = 293
    - expires = Sat, 06 May 1995 12:00:00 GMT
    - pragma = no-cache
    - cache-control = no-store, no-cache, must-revalidate,post-check=0, pre-check=0
    - connection = close
    - content-type = text/javascript; charset=UTF-8

    und folgenden Content (als HTML):
    <!DOCTYPE HTML PUBLIC -//IETF//DTD HTML 2.0//EN>
    <html><head>
    <title>400 invalid json object</title>
    </head><body>
    <h1>400 invalid json object</h1>
    <p>[no description available]</p>
    <hr>
    <address>Thu, 30 April 2009 08:12:04 GMT, Open-Xchange v6.6.0-6620</address>
    </body></html>{}

    Leider ist die Fehlermeldung wenig aussagekräftig. Und die
    Klammer nach dem schließenden HTML-Tag macht mich
    stutzig. Was mache ich falsch?

    Grüße aus Bochum
    HF Mettge

  2. #2
    Join Date
    Feb 2007
    Posts
    251

    Default

    Die eckigen Klammern in putData müssen Weg. Es ist ein Objekt, kein Array von Objekten.

  3. #3
    strgb Guest

    Default Auch ohne eckige Klammern gleiche Fehlermeldung

    Vielen Dank für die Antwort.

    Leider half sie nicht. Ich habe schon einige verschiedene Versionen ausprobiert (mit und ohne eckigen oder geschweiften Klammern, mit verschiedenen Datensätze).

    Bei den GET-Requests habe ich keine Probleme, nur bei diesem PUT-Request. Fehlt vielleicht etwas in der Syntax? Vielleicht hilft ja ein konkretes Beispiel eurerseits.

    MfG
    HF Mettge

  4. #4
    Join Date
    Feb 2007
    Posts
    251

    Default

    Welcher Content-Type wird im PUT angegeben?

    Konkrete Beispiele gibt's genug wenn man Firebug installiert und beim Arbeiten mit dem Web-Frontend auf die Firebug-Konsole schaut.

  5. #5
    strgb Guest

    Default Das Semikolon am Ende des Cookie-Strings ist das Übel

    Hallo nochmal,

    einige Stunden des Debuggings später, habe ich die Leiche im Keller gefunden. Ich benutze nun als HTTP-Client das Zend Framework, vorher eine andere HTTP-Client-Klasse, und musste feststellen, dass beide beim Setzen der Cookies auch am Ende ein Semikolon setzen.

    Ich habe keine Ahnung, warum, aber damit kommt die API nicht klar. Das heißt, entweder muss es an der API liegen oder an mehreren HTTP-Clients für PHP inklusive des Zend Frameworks. Ich weiß es wirklich nicht.

    Das Skript läuft jetzt. Andere Fragen in einem anderen Thread.

    Für andere (bitte nicht vergesssen):
    - Nach Login open-xchange-session-Cookie setzen
    - Dabei den ", path=/" rausparsen
    - Am Ende des Cookie-Strings darf kein ";" stehen

    Grüße aus Bochum
    HF Mettge

Tags for this Thread

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •