请原谅我,如果这个问题已经得到了回答/非常基本/问题措辞不正确,我对此很陌生并且正在挣扎。
基本上我有生成XML的后端PHP,然后闪存构建器继承数据。我陷入困境的是了解闪存构建器如何通过 HttpService 向 PHP 发送参数,例如
这是它目前的解释:
http://..../file.php?action=getitems
我希望闪存生成器发送的是
&class=fruit (<- the class would be dependant on what is selected from the drop down in the application)
整体创建此字符串
http://..../file.php?action=getitems&class=fruit
谢谢你,如果这是无稽之谈,我们深表歉意。我正在使用Flash Builder 4。
这
在 Flex 中实际上相当简单......
var service : HTTPService = new HTTPService();
service.url = "http://localhost/getData.php";
service.method = "POST";
var parameters:Object = new Object();
parameters["action"] = "getitems";
parameters["class"] = "fruit";
service.send(parameters);
。做!
总的来说,我会使用 push 方法而不是传递变量,从而减少了从中间被黑客入侵的机会。
我的 AS3 代码用于 http 调用:
public function someRequest() : void
{
var service : HTTPService = new HTTPService();
service.url = "http://localhost/getData.php";
service.useProxy = false;
service.method = "POST";
service.contentType = "application/xml"; // Pass XML data.
service.request = "<ID>somevalue</ID>"; // The XML data.
service.resultFormat = "xml"; // Recieve XML data.
service.addEventListener(ResultEvent.RESULT, createFields);
service.addEventListener(FaultEvent.FAULT, handleFault);
service.send();
}
private function createFields(event : ResultEvent) : void
{
var result : String = event.result.toString();
returnData = XML(result);
}
private function handleFault(event : FaultEvent) : void
{
var faultstring : String = event.fault.faultString;
Alert.show(faultstring);
}
正如您在中间看到的,有一个用于输入变量的 XML 空间。 我使用这种方法将数据从 PHP 来回传递到 AS3。
PHP是:
<?php
define("DATABASE_SERVER", "localhost");
define("DATABASE_USERNAME", "root");
define("DATABASE_PASSWORD", "**");
define("DATABASE_NAME", "dbName");
//connect to the database.
$mysql = mysql_connect(DATABASE_SERVER, DATABASE_USERNAME, DATABASE_PASSWORD);
mysql_select_db(DATABASE_NAME);
$Query = "SELECT * from data WHERE employeeID = '" . ($_POST['ID']) . "'";
$Result = mysql_query($Query);
$Return = "<data>";
while ($User = mysql_fetch_object($Result))
{
$Return .= "<user><userid>" . $User->userid . "</userid><username>" . $User->username . "</username><emailaddress>" . $User->emailaddress . "</emailaddress></user>";
}
$Return .= "</data>";
mysql_free_result($Result);
print ($Return)
?>
希望对您有所帮助。
我通常通过[POST]而不是[GET]来处理这个问题
在操作脚本函数中:
private function sendRequest():void {
var obj:Object = new Object();
obj.action="getitems";
obj.class="fruit";
myService.send(obj);
您的 http服务
<s:HTTPService id='myService' url='urlToYourPHP' method='POST' result='yourResultHandler' fault='yourFaultHandler' resultFormat='XML'/>
正如 powelljf3 所说,POST 比 GET 更安全,尽管它仍然可以获得。