Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Use aliases in SoapClient Mime Filters #90

Open
wants to merge 2 commits into
base: master
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions src/BeSimple/SoapClient/MimeFilter.php
Original file line number Diff line number Diff line change
Expand Up @@ -16,9 +16,9 @@
use BeSimple\SoapCommon\Mime\MultiPart as MimeMultiPart;
use BeSimple\SoapCommon\Mime\Parser as MimeParser;
use BeSimple\SoapCommon\Mime\Part as MimePart;
use BeSimple\SoapCommon\SoapRequest;
use BeSimple\SoapCommon\SoapRequest as CommonSoapRequest;
use BeSimple\SoapCommon\SoapRequestFilter;
use BeSimple\SoapCommon\SoapResponse;
use BeSimple\SoapCommon\SoapResponse as CommonSoapResponse;
use BeSimple\SoapCommon\SoapResponseFilter;

/**
Expand Down Expand Up @@ -60,7 +60,7 @@ public function resetFilter()
*
* @return void
*/
public function filterRequest(SoapRequest $request)
public function filterRequest(CommonSoapRequest $request)
{
// get attachments from request object
$attachmentsToSend = $request->getAttachments();
Expand Down Expand Up @@ -103,7 +103,7 @@ public function filterRequest(SoapRequest $request)
*
* @return void
*/
public function filterResponse(SoapResponse $response)
public function filterResponse(CommonSoapResponse $response)
{
// array to store attachments
$attachmentsRecieved = array();
Expand Down
4 changes: 2 additions & 2 deletions src/BeSimple/SoapClient/XmlMimeFilter.php
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,7 @@

use BeSimple\SoapCommon\FilterHelper;
use BeSimple\SoapCommon\Helper;
use BeSimple\SoapCommon\SoapRequest;
use BeSimple\SoapCommon\SoapRequest as CommonSoapRequest;
use BeSimple\SoapCommon\SoapRequestFilter;

/**
Expand All @@ -38,7 +38,7 @@ public function resetFilter()
*
* @return void
*/
public function filterRequest(SoapRequest $request)
public function filterRequest(CommonSoapRequest $request)
{
// get \DOMDocument from SOAP request
$dom = $request->getContentDocument();
Expand Down
4 changes: 3 additions & 1 deletion src/BeSimple/SoapCommon/Mime/Parser.php
Original file line number Diff line number Diff line change
Expand Up @@ -108,7 +108,9 @@ public static function parseMimeMessage($mimeMessage, array $headers = array())
}
$multipart->addPart($currentPart, $isMain);
$content = '';
}
} else {
$content .= $line . "\r\n";
}
} else {
if ($hitFirstBoundary === false) {
if (trim($line) != '') {
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,25 @@
POST http://131.107.72.15/Mtom/svc/service.svc/Soap12MtomUTF8 HTTP/1.1
Content-Type: multipart/related; type="application/xop+xml";start="<http://tempuri.org/0>";boundary="uuid:0ca0e16e-feb1-426c-97d8-c4508ada5e82+id=7";start-info="application/soap+xml"
Host: 131.107.72.15
Content-Length: 1941
Expect: 100-continue
HTTP/1.1 100 Continue

--uuid:0ca0e16e-feb1-426c-97d8-c4508ada5e82+id=7
Content-ID: <http://tempuri.org/0>
Content-Transfer-Encoding: 8bit
Content-Type: application/xop+xml;charset=utf-8;type="application/soap+xml"

<s:Envelope xmlns:s="http://www.w3.org/2003/05/soap-envelope" xmlns:a="http://schemas.xmlsoap.org/ws/2004/08/addressing"><s:Header><a:Action s:mustUnderstand="1">http://xmlsoap.org/echoBinaryAsString</a:Action><a:MessageID>urn:uuid:1bf061d6-d532-4b0c-930b-8b8202c38b8a</a:MessageID><a:ReplyTo><a:Address>http://schemas.xmlsoap.org/ws/2004/08/addressing/role/anonymous</a:Address></a:ReplyTo><a:To s:mustUnderstand="1">http://131.107.72.15/Mtom/svc/service.svc/Soap12MtomUTF8</a:To></s:Header><s:Body><EchoBinaryAsString xmlns="http://xmlsoap.org/Ping"><array><xop:Include href="cid:http%3A%2F%2Ftempuri.org%2F1%2F632618206527087310" xmlns:xop="http://www.w3.org/2004/08/xop/include"/></array></EchoBinaryAsString></s:Body></s:Envelope>

--uuid:0ca0e16e-feb1-426c-97d8-c4508ada5e82+id=7
Content-ID: <http://tempuri.org/1/632618206527087310>
Content-Transfer-Encoding: binary
Content-Type: application/octet-stream

Hello world.
-this line starts with a hyphen!
--This one starts with two hyphens.
Hi Again.

--uuid:0ca0e16e-feb1-426c-97d8-c4508ada5e82+id=7--
11 changes: 11 additions & 0 deletions src/BeSimple/SoapCommon/Tests/Mime/ParserTest.php
Original file line number Diff line number Diff line change
Expand Up @@ -124,6 +124,17 @@ public function testParserWithHeaderArray()
$mp = Parser::parseMimeMessage($mimeMessage, $headers);
$this->assertsForWsiMtomRequest($mp);
}

public function testParserWithHContentHyphens() {
$filename = dirname(__DIR__).DIRECTORY_SEPARATOR.'Fixtures/WS-I-MTOM-response-hyphen.txt';
$mimeMessage = file_get_contents($filename);

$mp = Parser::parseMimeMessage($mimeMessage);

$p1 = $mp->getPart('http://tempuri.org/1/632618206527087310');
$this->assertInstanceOf('BeSimple\SoapCommon\Mime\Part', $p1);
$this->assertEquals(96, strlen($p1->getContent()));
}

/*
* used in:
Expand Down