今天把常用的后台代码整理一下,教程就不用写了,我相信要是涉及到这方面的人,应该不用手把手教的,整理的代码主要有PHP,ASP.NET,JAVA.够爽吧.最近也正在整理FMS2.0应用的各种语言版本的例子,以后可能会爆出来.
先分一下类:HTTPService主要分为普通网页格式调用和,XML方式调用.
Flex(普通形式):
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF" backgroundAlpha="0"> <mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import mx.controls.Alert; public function handlePlain(event:ResultEvent):void { shippingOptions.text = event.result.toString(); } public function handleFault(event:FaultEvent):void { Alert.show(event.fault.faultString, "Error"); } ]]> </mx:Script> <mx:HTTPService result="handlePlain(event);" fault="handleFault(event);" id="plainRPC" resultFormat="text" url="http://yourserver.com/text/plainHttpService.php" useProxy="false"> <mx:request xmlns=""> <zipcode>{zipcode.text}</zipcode> <pounds>{weight_lb.text}</pounds> </mx:request> </mx:HTTPService> <mx:Label x="56" y="32" text="Zip Code" width="55" height="18" textAlign="right" fontWeight="bold"/> <mx:Label x="56" y="58" text="Weight" width="55" height="18" textAlign="right" fontWeight="bold"/> <mx:TextInput x="130" y="32" id="zipcode" width="160" height="22"/> <mx:TextInput x="130" y="58" id="weight_lb" width="160" height="22"/> <mx:Button x="130" y="95" label="Get Shipping Options" click="plainRPC.send();" width="160" height="22"/> <mx:Text x="56" y="150" id="shippingOptions" width="310" height="133" fontWeight="bold"/> </mx:Application>
Flex(XML格式):
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute"> <mx:Script> <![CDATA[ import mx.rpc.events.ResultEvent; import mx.rpc.events.FaultEvent; import mx.controls.Alert; public function handleXML(event:ResultEvent):void { shippingInfo = event.result.option as XML; } public function handleFault(event:FaultEvent):void { Alert.show(event.fault.faultString, "Error"); } ]]> </mx:Script> <mx:HTTPService result="handleXML(event);" fault="handleFault(event);" id="xmlRPC" resultFormat="e4x" method="POST" url="http://yourserver.com/xml/xmlHttpService.jsp" useProxy="false"> <mx:request xmlns=""> <zipcode>{zipcode.text}</zipcode> <pounds>{weight_lb.text}</pounds> </mx:request> </mx:HTTPService> <mx:Label x="56" y="32" text="Zip Code" width="55" height="18" textAlign="right" fontWeight="bold"/> <mx:Label x="56" y="58" text="Weight" width="55" height="18" textAlign="right" fontWeight="bold"/> <mx:TextInput x="130" y="32" id="zipcode" width="160" height="22"/> <mx:TextInput x="130" y="58" id="weight_lb" width="160" height="22"/> <mx:Button x="130" y="95" label="Get Shipping Options" click="xmlRPC.send();" width="160" height="22"/> <mx:DataGrid dataProvider="{shippingInfo}" x="80" y="141" width="262" height="92" id="shippingOptionsList" editable="false" enabled="true"> <mx:columns> <mx:DataGridColumn headerText="Service" dataField="service" /> <mx:DataGridColumn headerText="Price" dataField="price" /> </mx:columns> </mx:DataGrid> </mx:Application>
后台代码:
<cfprocessingdirective pageencoding = "utf-8" suppressWhiteSpace = "Yes">
<cfset myArgs.zipcode=URL.zipcode>
<cfset myArgs.pounds=URL.pounds>
<cfinvoke component="Shipping" method="getShippingOptions"
argumentcollection="#myArgs#"
returnvariable="myResult">
<cfoutput>
<cfloop index="i" from="1" to="#ArrayLen(myResult)#">
#myResult[i][1]#: $#myResult[i][2]#<br />
</cfloop>
</cfoutput>
</cfprocessingdirective>
<cfprocessingdirective pageencoding = "utf-8" suppressWhiteSpace = "yes">
<cfset myArgs.zipcode=URL.zipcode>
<cfset myArgs.pounds=URL.pounds>
<cfinvoke component="Shipping" method="getShippingOptions"
rgumentcollection="#myArgs#"
returnvariable="myResult">
<cfxml variable="userXML">
<options>
<cfloop array="#myresult#" index="theOption" >
<cfoutput>
<option>
<service>#theOption[1]#</service>
<price>#theOption[2]#</price>
</option>
</cfoutput>
</cfloop>
</options>
</cfxml>
<cfoutput>#userXML#</cfoutput>
</cfprocessingdirective>
<cfcomponent>
<cffunction name="getShippingOptions"
access="public" returntype="array">
<cfargument name="zipcode" type="any" required="yes" >
<cfargument name="pounds" type="any" required="yes">
<cflog text="In Shipping.getShippingOptions,
#Arguments.zipcode#, #Arguments.pounds#">
<cfset options=ArrayNew(2)>
<cfset baseCost=(zipcode / 10000) + (pounds * 5)>
<cfset options[1][1]="Next Day">
<cfset options[1][2]=baseCost * 4>
<cfset options[2][1]="Two Day Air">
<cfset options[2][2]=baseCost * 2>
<cfset options[3][1]="Saver Ground">
<cfset options[3][2]=baseCost>
<cflog text="options: #ArrayToList(options[3])#">
<cfreturn options>
</cffunction>
</cfcomponent>
xmlHttpService.php
<?php
require('shipping.php');
$options = get_shipping_options($_REQUEST["zipcode"], $_REQUEST["pounds"]);
$results[] = "<options>";
foreach ($options as $service => $price) {
$results[] = "<option><service>$service</service><price>$price</price></option>";
}
$results[] = "</options>";
print implode("\n", $results);
?>
shipping.php
<?php
function get_shipping_options($zipcode, $pounds) {
$baseCost = round($zipcode / 10000) + ($pounds * 5);
$options = array( "Next Day" => $baseCost * 4,
"Two Day Air" => $baseCost * 2,
"Saver Ground" => $baseCost);
return $options;
}
?>
页面格式例子
plainHttpService.php
<?php require ('shipping.php'); $options = get_shipping_options($_REQUEST[zipcode], $_REQUEST[pounds]); foreach ($options as $service => $price) { $result[] = "$service: $price USD"; } print implode("\n", $result); ?>
PlainHttpService.jsp
<%@page import="quickstart.ShippingCalculator, quickstart.ShippingOption, java.util.List" %> <% ShippingCalculator calc = new ShippingCalculator(); List options; int zipcode; double pounds; zipcode = Integer.parseInt(request.getParameter("zipcode")); pounds = Double.parseDouble(request.getParameter("pounds")); options = calc.getShippingOptions(zipcode, pounds); for (int i = 0; i < options.size(); i++) { ShippingOption option = (ShippingOption) options.get(i); %><%= option.getService() %>: <%= option.getPrice() %> USD <% } %>
xmlHttpService.JSP
<%@page import="quickstart.ShippingCalculator, quickstart.ShippingOption, java.util.List" %> <?xml version="1.0" encoding="utf-8"?> <options> <% ShippingCalculator calc = new ShippingCalculator(); List options; int zipcode; double pounds; zipcode = Integer.parseInt(request.getParameter("zipcode")); pounds = Double.parseDouble(request.getParameter("pounds")); options = calc.getShippingOptions(zipcode, pounds); for (int i = 0; i < options.size(); i++) { ShippingOption option = (ShippingOption) options.get(i); %> <option> <service><%= option.getService() %></service> <price><%= option.getPrice() %></price> </option> <% } %> </options>
ShippingCalculator.java
package quickstart; import java.util.ArrayList; import java.util.List; import java.lang.Math; public class ShippingCalculator { /* Returns a list of made-up ShippingOptions. */ public List getShippingOptions(int zipcode, double pounds) { List options = new ArrayList(); double baseCost; baseCost = Math.round(zipcode / 10000) + (pounds * 5); options.add(new ShippingOption("Next Day", baseCost * 4)); options.add(new ShippingOption("Two Day Air", baseCost * 2)); options.add(new ShippingOption("Saver Ground", baseCost)); return options; } }
ShippingOption.java
package quickstart; public class ShippingOption { private String service; private double price; public ShippingOption() { } public ShippingOption(String aService, double aPrice) { this.service = aService; this.price = aPrice; } public void setService(String value) { this.service = value; } public void setPrice(double value) { this.price = value; } public String getService() { return this.service; } public double getPrice() { return this.price; } }
<%@ Import Namespace="quickstart" %> <script language="C#" runat="server"> public void Page_Load(Object sender, EventArgs E) { int zipcode; double weight; if(Request.RequestType == "POST") { zipcode = Int32.Parse(Request.Form["zipcode"].ToString()); weight = Double.Parse(Request.Form["pounds"].ToString()); } else { zipcode = Int32.Parse(Request.QueryString["zipcode"].ToString()); weight = Double.Parse(Request.QueryString["pounds"].ToString()); } ShippingCalculator shippingcalculator = new ShippingCalculator(); ShippingOption shippingOption = new ShippingOption(); ArrayList al = shippingcalculator.getShippingOptions(zipcode, weight); StringBuilder stringBuilder;; foreach(Object obj in al) { stringBuilder = new StringBuilder(); shippingOption = (ShippingOption)obj; stringBuilder.Append(shippingOption.getService()); stringBuilder.Append(": "); stringBuilder.Append(shippingOption.getPrice()); stringBuilder.Append(" USD" + "\n"); Response.Write(stringBuilder.ToString()); } } </script>
XML格式文件
<%@ Import Namespace="quickstart" %> <script language="C#" runat="server" ContentType="text/xml" > public string str=""; public void Page_Load(Object sender, EventArgs E) { int zipcode; double weight; if(Request.RequestType == "POST") { zipcode = Int32.Parse(Request.Form["zipcode"].ToString()); weight = Double.Parse(Request.Form["pounds"].ToString()); } else { zipcode = Int32.Parse(Request.QueryString["zipcode"].ToString()); weight = Double.Parse(Request.QueryString["pounds"].ToString()); } ShippingCalculator shippingcalculator = new ShippingCalculator(); ShippingOption shippingOption = new ShippingOption(); ArrayList al = shippingcalculator.getShippingOptions(zipcode, weight); StringBuilder stringBuilder = new StringBuilder("<options>"); foreach(Object obj in al) { shippingOption = (ShippingOption)obj; stringBuilder.Append("<option><service>"); stringBuilder.Append(shippingOption.getService()); stringBuilder.Append("</service><price>"); stringBuilder.Append(shippingOption.getPrice()); stringBuilder.Append("</price></option>" ); } stringBuilder.Append("</options>"); str = stringBuilder.ToString(); } </script> <?xml version="1.0" encoding="utf-8"?> <% Response.ContentEncoding = Encoding.UTF8; Response.Write(str); %>
using System; using System.Collections; namespace quickstart { public class ShippingCalculator { //Returns a list of made-up ShippingOptions. public ArrayList getShippingOptions(int zipcode, double pounds) { ArrayList options = new ArrayList(); double baseCost; baseCost = Math.Round((double)zipcode / 10000) + (pounds * 5); options.Add(new ShippingOption("Next Day", baseCost * 4)); options.Add(new ShippingOption("Two Day Air", baseCost * 2)); options.Add(new ShippingOption("Saver Ground", baseCost)); return options; } } }
using System; namespace quickstart { public class ShippingOption { private String service; private double price; public ShippingOption() { } public ShippingOption(String aService, double aPrice) { this.service = aService; this.price = aPrice; } public void setService(String value) { this.service = value; } public void setPrice(double value) { this.price = value; } public String getService() { return this.service; } public double getPrice() { return this.price; } } }