コード例 #1
0
ファイル: MultiPartTest.php プロジェクト: mablae/BeSimpleSoap
 public function testGetMimeMessageWithHeaders()
 {
     $mp = new MultiPart();
     /*
     string(189) "MIME-Version: 1.0
     Content-Type: multipart/related; type="text/xml"; charset=utf-8; boundary="urn:uuid:231833e2-a23b-410a-862e-250524fc38f6"
     
     --urn:uuid:231833e2-a23b-410a-862e-250524fc38f6--"
     */
     $this->assertEquals(193, strlen($mp->getMimeMessage(true)));
     $p = new Part('test');
     $mp->addPart($p, true);
     /*
     string(452) "MIME-Version: 1.0
     Content-Type: multipart/related; type="text/xml"; charset=utf-8; boundary="urn:uuid:231833e2-a23b-410a-862e-250524fc38f6"; start="<urn:uuid:9389c081-56f7-4f57-b66e-c81892c3d4db>"
     
     --urn:uuid:231833e2-a23b-410a-862e-250524fc38f6
     Content-Type: application/octet-stream; charset=utf-8
     Content-Transfer-Encoding: binary
     Content-ID: <urn:uuid:9389c081-56f7-4f57-b66e-c81892c3d4db>
     
     test
     --urn:uuid:231833e2-a23b-410a-862e-250524fc38f6--"
     */
     $this->assertEquals(458, strlen($mp->getMimeMessage(true)));
 }
コード例 #2
0
 /**
  * Modify the given request XML.
  *
  * @param \BeSimple\SoapCommon\SoapRequest $request SOAP request
  *
  * @return void
  */
 public function filterRequest(SoapRequest $request)
 {
     // get attachments from request object
     $attachmentsToSend = $request->getAttachments();
     // build mime message if we have attachments
     if (count($attachmentsToSend) > 0) {
         $multipart = new MimeMultiPart();
         $soapPart = new MimePart($request->getContent(), 'text/xml', 'utf-8', MimePart::ENCODING_EIGHT_BIT);
         $soapVersion = $request->getVersion();
         // change content type headers for MTOM with SOAP 1.1
         if ($soapVersion == SOAP_1_1 && $this->attachmentType & Helper::ATTACHMENTS_TYPE_MTOM) {
             $multipart->setHeader('Content-Type', 'type', 'application/xop+xml');
             $multipart->setHeader('Content-Type', 'start-info', 'text/xml');
             $soapPart->setHeader('Content-Type', 'application/xop+xml');
             $soapPart->setHeader('Content-Type', 'type', 'text/xml');
         } elseif ($soapVersion == SOAP_1_2) {
             $multipart->setHeader('Content-Type', 'type', 'application/soap+xml');
             $soapPart->setHeader('Content-Type', 'application/soap+xml');
         }
         $multipart->addPart($soapPart, true);
         foreach ($attachmentsToSend as $cid => $attachment) {
             $multipart->addPart($attachment, false);
         }
         $request->setContent($multipart->getMimeMessage());
         // TODO
         $headers = $multipart->getHeadersForHttp();
         list(, $contentType) = explode(': ', $headers[0]);
         $request->setContentType($contentType);
     }
 }