Skip to content
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