Jump to content

Soap Calls don't work


Recommended Posts

Hi all,

 

I'm developing a app that needs to calls MSNs live search api using nusoap. However on my laptop the calls don't work but when I upload the php script to my server it's works perfectly. Im using ubuntu, do I need to open ports or modify any php settings.

 

Thanks in advance for any help

 

Dooley

 

 

 

 

 

Link to comment
Share on other sites

Hi sorry,

 

Was in a rush didn't elaborate. Apologies..

 

Here's the code im trying to implement

 

<?php

/**

* This set of functions queries MSN Search API.

*

* This is a single php page and set of functions that, when given the right

* data will return a set of formatted MSN search results. Requires NuSOAP,

* located at http://sourceforge.net/projects/nusoap/.

* Stick this file into a folder in your server along with NuSOAP

* library and point your browser there for action. Don't forget to get

* an MSN Application ID (see http://search.msn.com/developer)

*

* Read the related blog post here:

* http://www.fiftyfoureleven.com/weblog/web-development/programming-and-scripts/apis/msn-search-api

*

* @author: Mike Papageorge, http://www.fiftyfoureleven.com/contact

* @lastUpDate: 14/11/2005

* @license: http://creativecommons.org/licenses/by/2.5/

* @location: http://www.fiftyfoureleven.com/site/code/msn-search-api-sample.txt

*/

error_reporting(E_ALL);

 

// Variables for the search. You need to edit these to use this:

 

$id = 'my developer key';

$site = '';

$numresults = 30;

$baseurl = 'http://soap.search.msn.com/webservices.asmx'; // MSN API URI

$form = '

<form action="'.$_SERVER['PHP_SELF'].'" method="get">

<label for="p">Search Terms</label>

<input name="p" id="p" type="text" />

<input type="submit" value="search" />

</form>

 

';

 

/**

* A little 'controller' to make this sample page work:

*

*/

$xhtml = '';

if(isset($_GET['p']) && $_GET['p'] != '') {

$data = getResultArray($id, $site, $baseurl, $numresults);

$xhtml = $form.formatMSNResultset($data, $numresults);

} else {

// If an empty search was given:

$xhtml = (isset($_GET['p']) && $_GET['p'] == '') ? '<p>Please enter a search term</p>':'';

// Show the form:

$xhtml .= $form;

}

 

echo $xhtml;

 

 

//

//

// Here be functions....

//

//

 

/**

* Build an array with the parameters we want to use.

*

*/

function setParams($id, $site, $numresults) {

$params = array(

// Details for all of these can be found in the developer's kit,

// in the help file.

'AppID' => $id,

'Query' => "My Query",

'CultureInfo' => 'en-US',

'SafeSearch' => 'Off',

'Requests' => array (

'SourceRequest' => array (

'Source' => 'Web',

'Offset' => 0,

'Count' => $numresults,

'ResultFields' => 'All'

)

)

);

return $params;

}

 

 

/**

* This function passes our data to NuSOAP, and

* returns the search results:

*/

function getResultArray($id, $site, $baseurl, $numresults) {

// Get the parameters:

$params = setParams($id, $site, $numresults);

// Include the library:

include_once("nusoap.php");

// Create a instance of the SOAP client object

$soapclient = new soapclient($baseurl);

$data = $soapclient->call("Search", array("Request"=>$params));

return $data;

}

 

 

/**

* This function formats our MSN specific array:

*

*/

function formatMSNResultset($data, $numresults) {

// If no results were found:

if($data['Responses']['SourceResponse']['Total'] == '0') {

$results = '<p>There were 0 results found with MSN search. Please try again by typing your search terms into the search box, and then click search.</p>';

return $results;

}

 

// Now down to business:

$tmp = '';

foreach($data['Responses']['SourceResponse']['Results']['Result'] as $key => $value) {

$tmp .= '<dt><a href="'.$data['Responses']['SourceResponse']['Results']['Result'][$key]['Url'].'">'.$data['Responses']['SourceResponse']['Results']['Result'][$key]['Title'].'</a></dt>

';

$r = htmlentities($data['Responses']['SourceResponse']['Results']['Result'][$key]['Description']);

$tmp .= '<dd>'.$r.'</dd>

 

';

}

$results = '<h1>Viewing '.$numresults.' of '.$data['Responses']['SourceResponse']['Total'].' results found by MSN search.</h1>

<dl>

'.$tmp.'

</dl>';

 

return $results;

}

 

?>

 

Blantently stolen from the internet but this is just a text, I do need to be able to query a search engine and heres the error I get.

 

Warning: SoapClient::SoapClient(http://soap.search.msn.com/webservices.asmx) [function.SoapClient-SoapClient]: failed to open stream: HTTP request failed! HTTP/1.1 404 Not Found in /var/www/page/survey/getdefinitions.php on line 96

 

Warning: SoapClient::SoapClient() [function.SoapClient-SoapClient]: I/O warning : failed to load external entity "http://soap.search.msn.com/webservices.asmx" in /var/www/page/survey/getdefinitions.php on line 96

 

Fatal error: Uncaught SoapFault exception: [WSDL] SOAP-ERROR: Parsing WSDL: Couldn't load from 'http://soap.search.msn.com/webservices.asmx' in /var/www/page/survey/getdefinitions.php:96 Stack trace: #0 /var/www/page/survey/getdefinitions.php(96): SoapClient->SoapClient('http://soap.sea...') #1 /var/www/page/survey/getdefinitions.php(43): getResultArray('2725F7DF7AE0E9A...', '', 'http://soap.sea...', 30) #2 {main} thrown in /var/www/page/survey/getdefinitions.php on line 96

 

So effectively it doesn't see the mircosoft live, server. And as I said when I bang the code up to a server it works perfectly. That why I assume it's an issue with php connection to the web.

 

As you can see I don't need the soap module installed, i'm using nusoap.

 

Thanks again for any light you can shed on the subject.

Link to comment
Share on other sites

This thread is more than a year old. Please don't revive it unless you have something important to add.

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.