skip to Main Content

This is my code:

<?php
error_reporting(E_ALL);
//new instance of soapClient pointing to Ebay finding api
$client = new SoapClient("http://developer.ebay.com/webservices/finding/latest/FindingService.wsdl");

//attach required parameters to soap message header
$header_arr = array();
$header_arr[] = new SoapHeader("X-EBAY-SOA-MESSAGE-PROTOCOL", "SOAP11");
$header_arr[] = new SoapHeader("X-EBAY-SOA-SERVICE-NAME", "FindingService");
$header_arr[] = new SoapHeader("X-EBAY-SOA-OPERATION-NAME", "findItemsByKeywords");
$header_arr[] = new SoapHeader("X-EBAY-SOA-SERVICE-VERSION", "1.0.0");
$header_arr[] = new SoapHeader("X-EBAY-SOA-GLOBAL-ID", "EBAY-GB");
$header_arr[] = new SoapHeader("X-EBAY-SOA-SECURITY-APPNAME", "REMOVED");
$header_arr[] = new SoapHeader("X-EBAY-SOA-REQUEST-DATA-FORMAT", "XML");
$header_arr[] = new SoapHeader("X-EBAY-SOA-MESSAGE-PROTOCOL", "XML");

$test = $client->__setSoapHeaders($header_arr);

$client->__setLocation("http://svcs.ebay.com/services/search/FindingService/v1"); //endpoint

$FindItemsByKeywordsRequest = array(
    "keywords" => "potter"
);

$result = $client->__soapCall("findItemsByKeywords", $FindItemsByKeywordsRequest);

//print_r($client->__getFunctions());
//print_r($client->__getTypes());
//print_r($result);

And this is the error I receive:

Fatal error: Uncaught SoapFault exception: [axis2ns2:Server] Missing SOA operation name header in C:xampplitehtdocsOOPnewfile.php:25 Stack trace: #0 C:xampplitehtdocsOOPnewfile.php(25): SoapClient->__soapCall(‘findItemsByKeyw…’, Array) #1 {main} thrown in C:xampplitehtdocsOOPnewfile.php on line 25

It doesn’t make sense, I have already set the operation name in the header of the request…
Does anyone know what is wrong here?

3

Answers


  1. Place the code in a try/catch and var_dump() the exception you’re getting. That should give you more detail as to what is the problem.

    Login or Signup to reply.
  2. According to the SoapHeader documentation, you need to pass a namespace (or at least NULL) as the first parameter of the header construction call.

    Login or Signup to reply.
  3. I know this is REALLY old – but you need to specify the following HTTP headers (not soap headers – be aware of the distinction).

    Here is an example that works for finding service:

    CONTENT-TYPE: SOAP12
    X-EBAY-SOA-OPERATION-NAME: findItemsByKeywords
    X-EBAY-SOA-SECURITY-APPNAME: YOUR-ebay-app-id

    Login or Signup to reply.
Please signup or login to give your own answer.
Back To Top
Search