Anhänge mit PHP eingebauten SoapClient?

8

Gibt es eine Möglichkeit, einen Soap-Anhang zu einer Anfrage mit den in PHP integrierten SoapClient-Klassen hinzuzufügen? Es sieht nicht so aus, als ob es unterstützt wird, aber vielleicht kann ich die Mime-Grenzen manuell erstellen? Ich weiß, dass die PEAR SOAP-Bibliothek sie unterstützt, aber um das zu verwenden, muss ich meine gesamte Bibliothek neu schreiben, um sie zu verwenden.

    
Harold1983- 25.06.2010, 18:53
quelle

2 Antworten

3

Warum senden Sie nicht einfach Dateien mit dem Daten-URI-Schema , anstatt SoapAttachment ? Hier ist ein Beispiel:

Kunde

%Vor%

Ausgabe

%Vor%

Server

%Vor%

Client-Dienstprogramm

%Vor%     
Baba 31.05.2013 18:29
quelle
2

Ja, Sie können die MIME-Komponente der Nachricht mit etwas wie imap_mail_compose erstellen .

Sie müssen eine mehrteilige Nachricht wie im ersten Beispiel erstellen, indem Sie den XML-Code vom Parameter $request aus einer überschriebenen Methode SoapClient::__doRequest in den ersten Teil der MIME-Nachricht einfügen.

Dann können Sie, wie andere im ersten imap_mail_compose -Beispiel gezeigt haben, einen oder mehrere Nachrichtenteile mit Anhängen hinzufügen. Diese Anhänge können, müssen aber nicht base64-kodiert sein, sie können genauso gut binär sein. Die Codierung für jedes Teil wird durch teilspezifische Header festgelegt.

Sie müssen auch einen geeigneten Satz von HTTP-Headern pro SwA-Dokument @Baba erstellen zu früher verbunden.

Sobald alles gesagt und getan ist, sollten Sie etwas haben, das wie die Beispiele aus diesem Dokument aussieht:

%Vor%

Und Sie können das mit der oben erwähnten überschriebenen Methode SoapClient::__doRequest über die Leitung senden. Dinge, die ich bisher bei der Umsetzung selbst bemerkt habe:

  • Sie müssen möglicherweise eine href URI-Referenz von jedem SOAP-Knoten zum entsprechenden Anhang erstellen, etwa href="cid:[email protected]" über
  • Sie müssen die Komponente boundary aus dem MIME-Inhalt extrahieren, der von imap_mail_compose zur Verwendung in einem HTTP Content-Type Header
  • zurückgegeben wird
  • Vergessen Sie auch nicht die start -Komponente der Content-Type -Kopfzeile. Sie sollte etwa so aussehen:
  • imap_mail_compose erscheint ziemlich minimal (aber niedrig hängende Früchte), wenn es sich als unzureichend erweist, sollten Sie statt dessen Mail_Mime nachschlagen >
  

Inhaltstyp: Multipart / Related; Grenze = MIME_grenze;   type = Text / xml; start=""

Schließlich bin ich mir nicht sicher, wie gleichmäßig die verschiedenen Implementierungen von SwA im Internet sind ... Es genügt zu sagen, dass ich keinen Upload zu einem Remote-Service mit einer rohen Umsetzung von dem, was ich oben noch beschrieben habe. Es scheint, als wäre SwA das typische SOAP-Anknüpfungsparadigma der Wahl, obwohl ich das im Internet gelesen habe.

    
quickshiftin 07.06.2013 04:01
quelle

Tags und Links