Solved

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

Posted on 2009-05-07
6
1,332 Views
Last Modified: 2013-12-20
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

0
Comment
Question by:rcbuchanan
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 2
6 Comments
 
LVL 52

Expert Comment

by:_agx_
ID: 24327248
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#">


0
 
LVL 52

Accepted Solution

by:
_agx_ earned 500 total points
ID: 24327264
>  <cfset livebody = "?Appid=" & #liveappid# & "&query=" & #livequery# & "&sources=" & #livesources#>
> ...
>  <cfset live_doc = #xmlparse(cfhttp.filecontent)#>


BTW,  you do not need those extra # signs. The code will still work if you leave them in, but would be cleaner without them:

<cfset livebody = "?Appid="& liveappid & "&query=" & livequery & "&sources=" & livesources>
...
<cfset live_doc = xmlparse(cfhttp.filecontent)>
0
 

Author Comment

by:rcbuchanan
ID: 24327755
Bloody Hell!
Brilliant.

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

R
0
Create the perfect environment for any meeting

You might have a modern environment with all sorts of high-tech equipment, but what makes it worthwhile is how you seamlessly bring together the presentation with audio, video and lighting. The ATEN Control System provides integrated control and system automation.

 

Author Closing Comment

by:rcbuchanan
ID: 31579047
Brilliant AND polite!
0
 
LVL 52

Expert Comment

by:_agx_
ID: 24328358
Eh, we are sloppy newbies at something ;-)
0
 
LVL 52

Expert Comment

by:_agx_
ID: 24328365
> Eh, we are sloppy newbies at something ;-)

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

Featured Post

Building an interactive eFuture classroom

Watch and learn how ATEN provided a total control system solution including seamless switching matrix switch, HDBaseT extenders, PDU, lighting control to build an interactive eFuture classroom.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

When it comes to write a Context Sensitive Help (an online help that is obtained from a specific point in state of software to provide help with that state) ,  first we need to make the file that contains all topics, which are given exclusive IDs. …
Because your company can’t afford for you to make SEO mistakes, you’ll want to ensure you’re taking the right steps each and every time you post a new piece of content. This list of optimization do’s and don’ts can help you become an SEO wizard.
The viewer will learn how to count occurrences of each item in an array.
The viewer will get a basic understanding of what section 508 compliance can entail, learn about skip navigation links, alt text, transcripts, and font size controls.

624 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question