PHP

To use PHP to invoke web services, you must create the development environment and enable:

  • Soap extension by removing semi-colon (;), which is the comment character, from the line starting with extension=php_soap.dll

  • SSL extension by removing semi-colon (;) from the line starting with extension=php_openssl.dll

For more information about installing and configuring the PHP development environment, see EasyPhp.

The following is an example code to create a simple form to call the SoapClient:
  1. Simple HTML form that contains a button to submit a request and a text area to display the result.

  2. Processing logic that branches based on request type. A POST request calls a web service; any other request clears the value of the text area that contains the result.

  3. Processing logic that creates a new instance for the soap client.

  4. Construct an array structure that contains the parameters to be passed to the web service.

  5. Parse the response as XML and assign to a variable that is displayed in the text area for output.

<?php
// Process POST requests
if ($_SERVER['REQUEST_METHOD'] == 'POST'){
   try {
       $username ="username";
       $password ="password";
       // Create new instance for the client
       $client = new SoapClient("https://host:port/icCnSetupCreditRulesPublicService/CreditRuleService?wsdl",
                 array('trace' => 1,
                      'login' => $username,
                      'password' => $password));
       // Construct the payload to be used to invoke the service.
       $params = array(
         'findCriteria' => array(
         'fetchStart' => '0',
         'fetchSize' => '-1',
         'filter' => array(
           'group' => array(
             'upperCaseCompare' => 'false',
             'item' => array(
               'upperCaseCompare' => 'false',
               'attribute' => 'RuleId',
               'operator' => '=',
               'value' => '300000000851162')
            )
         ),
         'excludeAttribute' => 'false'
         ),
         'findControl' => array(
           'retrieveAllTranslations' => 'false')
        );
		// Invoke the service
        $response = $client->FindRule($params);
		
        // Process the response. In this example,  the content is copied to a variable that is displayed as output
        $dom = new DOMDocument;
        $dom->preserveWhiteSpace = FALSE;
        $dom->loadXML($client->__getLastResponse());
        $dom->formatOutput = TRUE;
        $dom->saveXml();
        $output = $dom->saveXml();
    } catch(Exception $e) {
      print "Exception: " . $e->getMessage();
      }
    } else {
      // For GET request, set the variable displayed as output
      $output = "";
      } 
	  ?>
    <form name="envelope" method="POST">
      <!-- Button used to start the processing -->
      <input id="invoke_service" type="submit" value="Invoke Service" />
      <!-- Text area to display the result for processing. As the result is XML, it is encoded; otherwise it is not displayed correctly -->
      <textarea name="outputpayload" wrap="off" style="width:100%;height:100%" rows=30><?php echo
      htmlentities($output);?></textarea>
    </form>
Related Topics
  • Java Client
  • Oracle Database
  • .NET Framework
  • Perl
  • Python
  • Ruby
  • Invoking SOAP Web Services