The followig example shows how you can pass parameters to an HTTPService by passing an Object in the HTTPService’s send() method. The remote ColdFusion script is a simple “hello world” type script which accepts a single parameter, “name”, and returns a single parameter, “welcomeMessage”.
Full code after the jump.
<?xml version="1.0" encoding="utf-8"?>
<!-- http://blog.flexexamples.com/2007/10/29/passing-parameters-to-an-httpservice/ -->
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
layout="vertical"
verticalAlign="middle"
backgroundColor="white">
<mx:Script>
<![CDATA[
import mx.controls.Alert;
import mx.events.ValidationResultEvent;
import mx.utils.StringUtil;
private function submit_click(evt:MouseEvent):void {
var result:ValidationResultEvent = stringValidator.validate();
var params:Object = {};
lbl.text = "";
switch (result.type) {
case ValidationResultEvent.INVALID:
Alert.show(result.message, result.type);
break;
case ValidationResultEvent.VALID:
params["name"] = StringUtil.trim(firstName.text);
httpServ.send(params);
break;
}
}
]]>
</mx:Script>
<mx:StringValidator id="stringValidator"
source="{firstName}"
property="text"
minLength="2"
maxLength="{firstName.maxChars}" />
<mx:HTTPService id="httpServ">
<mx:resultFormat>flashvars</mx:resultFormat>
<mx:url>http://www.flash-mx.com/mm/greeting.cfm</mx:url>
<mx:result>lbl.text = httpServ.lastResult.welcomeMessage;</mx:result>
<mx:fault>Alert.show(event.toString(), event.type);</mx:fault>
</mx:HTTPService>
<mx:ApplicationControlBar dock="true">
<mx:Form>
<mx:FormItem label="Name:" required="true"
direction="horizontal">
<mx:TextInput id="firstName"
maxChars="20" />
<mx:Button label="Submit"
click="submit_click(event);" />
</mx:FormItem>
</mx:Form>
</mx:ApplicationControlBar>
<mx:Label id="lbl" fontSize="32" />
</mx:Application>
View source is enabled in the following example.
By popular request, here is the ColdFusion source code as well.
http://www.flash-mx.com/mm/greeting.cfm
<cfsilent>
<cfsetting enablecfoutputonly="Yes">
<cfif IsDefined("URL.name")><cfset Form.Name = URL.name /></cfif>
<cfif NOT IsDefined("Form.name") OR Len(Trim(Form.Name)) EQ 0>
<cfset Form.Name = "[Mysterious Stranger]" />
</cfif>
</cfsilent><cfcontent reset="true" /><cfoutput>welcomeMessage=#UrlEncodedFormat("Welcome, "&Form.name)#</cfoutput>
<cfsetting enablecfoutputonly="No">





Hi,
nice tutorial. Can you please the same exaple using java as remote script to handle the request. Also do upload the script code as well. This will give clear picture
Thank’s
Hi! Do you have the .cfm file? Is it possible if i take a look? Because i’m having problem how to write it.
Hi, I have a question about <mx:url>http://www.flash-mx.com/mm/greeting.cfm</mx:url>
I want to replace this URL with my local url like:http://localhost:8080/baidusongs/greeting.cfm
and the file content of greeting.cfm is:
welcomeMessage=Welcome%2C%20%5BMysterious%20Stranger%5D
but it doesn’t work; error message is as bellow:
[FaultEvent fault=[RPC Fault faultString=”Security error accessing url” faultCode=”Channel.Security.Error” faultDetail=”Destination: DefaultHTTP”] messageId=”35B47C6E-A306-19F6-5CB9-3A6DB07123C8″ type=”fault” bubbles=false cancelable=true eventPhase=2]
thanks for your time!
yes, maybe i have the same problem with Mas.
Thanks…
Mas,
I updated the entry above, hope that helps.
Peter
Liceven,
You may be getting a security error if your SWF/HTML is using the file:/// protocol and your webservice/CFM is running on http://.
I’d start by copying the contents of the /bin-debug/ or /bin-release/ folders into the same directory as the .CFM file and view the sample over HTTP.
Peter
Hello,peterd,
I copy all the files in folder /bin-debug/ to the same directory as the .cfm. And view the swf over http. It don’t pop up the error dialog this time, but it doesn’t display welcome information either.
And i viewed the greetinng.cfm using IE browser. I found the return contents are different.
http://www.flash-mx.com/mm/greeting.cfm—>welcomeMessage=Welcome%2C%20%5BMysterious%20Stranger%5D
whiel http://localhost:8080/flexweb/greeting.cfm returns welcomeMessage=#UrlEncodedFormat(”Welcome, “&Form.name)#
why? i have little knowledge about coldfusion. so, thanks very much.
Liceven,
Looks like your ColdFusion server isn’t parsing the .CFM templates for some reason. Which version of ColdFusion did you install?
Peter
ColdFusion MX 7
Maybe there is something wrong with the configuration.
Thanks very much Peterd.
I am having problem using HTTPService, Can u please help me for the problem mentioned on the link below?
http://board.flashkit.com/board/showthread.php?t=772909
It’s broken, I get a fault “channel security error”.
Yeah, looks like www.flash-mx.com is down.
Hi ,
Can u specify an example how to write httpservice in actionscript