Link to home
Start Free TrialLog in
Avatar of rcbuchanan
rcbuchanan

asked on

Error 'Content is not allowed in prolog.' trying to CFHTTP MSNLive.net api

Can you help?

If I run this URL: (with real appid) in a web browser ... it works).
BUT if I run the URL through CFHTTP GET (see code below) ... I get this error:

An error occured while Parsing an XML document.
: 'Content is not allowed in prolog.'
:
: http://api.search.live.net/xml.aspx?Appid=123456789012345678901234567890&query=&sources=news
:  
: The error occurred in C:\Inetpub\wwwroot\testmsnlive.cfm: line 16
: 14 : <cfhttp method="GET" url="http://api.search.live.net/xml.aspx#livebody#">
: 15 :
: 16 : <cfset live_doc = #xmlparse(cfhttp.filecontent)#>
: 17 : <cfdump var="#live_doc#">
: 18 :


Note: for test reasons ... (see code) I've output the #livebody# to tell myself what URL string I'm trying to pass.
Shown as '#livebody# outputs as '?Appid=123456789012345678901234567890&query=&sources=news'
* where appid is not real on EE here.

If I run that livebody output in a browser ... it works.

What am I doing wrong!? any ideas?

Richard


SUPPORTING INFORMATION : Live.Net FAQ Sheet for API
http://search.live.com/developers/s/API%20Basics.pdf


<cfset liveappid = '123456789012345678901234567890'>
<cfset livequery = ''>
<cfset livesources = 'news'>
<cfset livemarket = ''>
<cfset liveUIlanguage='en'>
<cfset livelatitude = '47.603828'>
<cfset livelongitude = '-122.328567'>
<cfset liveradius = 250>
<cfset livenewssortoption = 'Date'>
 
<cfset livebody = "?Appid=" & #liveappid# & "&query=" & #livequery# & "&sources=" & #livesources#>
<cfoutput>#livebody#</cfoutput>
 
<cfhttp method="GET" url="http://api.search.live.net/xml.aspx#livebody#">
 
<cfset live_doc = #xmlparse(cfhttp.filecontent)#>
<cfdump var="#live_doc#">
 
 
** note: liveappid is not my real appid (for obvious reasons)

Open in new window

Avatar of _agx_
_agx_
Flag of United States of America image

If you are having problems, always dump the cfhttp results. Chances are the results are not what you think.  In your case the cfhttp response was probably "Connection Failure". Since that is not valid xml, xmlParse failed.

It seems to work with the addition of this tip:
http://blog.pengoworks.com/index.cfm/2006/3/13/CFHTTP-Connection-Failures-issues-with-Gzip

<cfhttp method="GET" url="http://api.search.live.net/xml.aspx#livebody#">
      <cfhttpparam type="header" name="Accept-Encoding" value="*" />
</cfhttp>
<!--- see what is returned. is it valid xml? --->
<cfdump var="#cfhttp.filecontent#">


ASKER CERTIFIED SOLUTION
Avatar of _agx_
_agx_
Flag of United States of America image

Link to home
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
Start Free Trial
Avatar of rcbuchanan
rcbuchanan

ASKER

Bloody Hell!
Brilliant.

Thanks mate!
Yes - I'm a sloppy newbie at CF but ... all this helps very much!

R
Brilliant AND polite!
Eh, we are sloppy newbies at something ;-)
> Eh, we are sloppy newbies at something ;-)

   ... we are _all_ sloppy newbies at something (Obviously, I am a typing newbie today ;-)