Skip navigation
Currently Being Moderated

base URL as string variable

Oct 25, 2011 5:37 AM

Tags: #url #string #variable #as #httpservice #base

I'm trying to get to grips with Flash Builder 4.5 and have been struggling with this problem for a week now, if anyone has some suggestions I would really appreciate it.

 

 

I have been looking for a way to pass a string variable to HTTPMultiService for the baseURL path.

 

I want to pass the test.text field contents to the HTTPMultiService for the baseURL to be the base path but i just get an error.

 

Is there a way to pass a variable to the base url to be used as the base path?

 

testImg.gif

 

My code is as follows.

 

<?xml version="1.0" encoding="utf-8"?>

<s:Application xmlns:fx="http://ns.adobe.com/mxml/2009"

                                 xmlns:s="library://ns.adobe.com/flex/spark"

                                 xmlns:mx="library://ns.adobe.com/flex/mx"

                                 xmlns:mypath="services.mypath.*"

                                 xmlns:testing="services.testing.*"

                               

                                 minWidth="955" minHeight="600"

                                 creationComplete="mypath.send()">

 

          <fx:Script>

                    <![CDATA[

                              import mx.controls.Alert;

                              import mx.events.FlexEvent;

                              import mx.rpc.events.ResultEvent;

 

                              import services.testing.mypath;

 

                              import spark.events.TextOperationEvent;

          

                              protected function mypath_resultHandler(event:ResultEvent):void

                              {

                                        OperationResult.token = testing.Operation();

 

                              }

 

                    ]]>

 

          </fx:Script>

          <fx:Declarations>

                    <s:CallResponder id="OperationResult"/>

 

        <s:HTTPService id="mypath" url="mypath.xml" resultFormat="e4x" result="mypath_resultHandler(event)"/>

 

                    <testing:Testing id="testing"

                                                             fault="Alert.show(event.fault.faultString + '\n' + event.fault.faultDetail)"

                                                             showBusyCursor="true"/>

 

 

                    <!-- Place non-visual elements (e.g., services, value objects) here -->

          </fx:Declarations>

          <s:TextArea id="test" x="34" y="264" width="487" height="33"

                                        text="{mypath.lastResult}"/> <<<< This is the variable i want to use which contains the path i wish to use in the class below.

          <s:DataGrid id="mydg" x="50" y="58" requestedRowCount="4">

                    <s:columns>

                              <s:ArrayList>

                                        <s:GridColumn dataField="office" headerText="office"></s:GridColumn>

                                        <s:GridColumn dataField="departmentid" headerText="departmentid"></s:GridColumn>

                                        <s:GridColumn dataField="street" headerText="street"></s:GridColumn>

                                        <s:GridColumn dataField="zipcode" headerText="zipcode"></s:GridColumn>

                                        <s:GridColumn dataField="state" headerText="state"></s:GridColumn>

                                        <s:GridColumn dataField="lastname" headerText="lastname"></s:GridColumn>

                                        <s:GridColumn dataField="firstname" headerText="firstname"></s:GridColumn>

                                        <s:GridColumn dataField="photofile" headerText="photofile"></s:GridColumn>

                                        <s:GridColumn dataField="city" headerText="city"></s:GridColumn>

                                        <s:GridColumn dataField="id" headerText="id"></s:GridColumn>

                                        <s:GridColumn dataField="title" headerText="title"></s:GridColumn>

                                        <s:GridColumn dataField="officephone" headerText="officephone"></s:GridColumn>

                                        <s:GridColumn dataField="email" headerText="email"></s:GridColumn>

                                        <s:GridColumn dataField="cellphone" headerText="cellphone"></s:GridColumn>

                              </s:ArrayList>

                    </s:columns>

                    <s:typicalItem>

                              <fx:Object id="id1" cellphone="cellphone1" city="city1" departmentid="departmentid1"

                                                     email="email1" firstname="firstname1" lastname="lastname1" office="office1"

                                                     officephone="officephone1" photofile="photofile1" state="state1"

                                                     street="street1" title="title1" zipcode="zipcode1"></fx:Object>

                    </s:typicalItem>

                    <s:AsyncListView list="{OperationResult.lastResult}"/>

          </s:DataGrid>

 

</s:Application>

//==================================================================== ====================

Super_Testing.as Class

 

/**

* This is a generated class and is not intended for modification.  To customize behavior

* of this service wrapper you may modify the generated sub-class of this class - Testing.as.

*/

package services.testing

{

import com.adobe.fiber.core.model_internal;

import com.adobe.fiber.services.wrapper.HTTPServiceWrapper;

import mx.rpc.AbstractOperation;

import mx.rpc.AsyncToken;

import mx.rpc.http.HTTPMultiService;

import mx.rpc.http.Operation;

import valueObjects.Mydata;

 

 

import com.adobe.serializers.json.JSONSerializationFilter;

 

 

[ExcludeClass]

internal class _Super_Testing extends com.adobe.fiber.services.wrapper.HTTPServiceWrapper

{

    private static var serializer0:JSONSerializationFilter = new JSONSerializationFilter();

 

 

    // Constructor

    public function _Super_Testing()

    {

        // initialize service control

        _serviceControl = new mx.rpc.http.HTTPMultiService("http://server/mytest/");   <<< I want to replace this hard coded baseURL with a variable from the text field test.text.

         var operations:Array = new Array();                                                                     the text field is loaded first before the datagrid is triggered but this still gives an error

         var operation:mx.rpc.http.Operation;                                                                     if I put the variable in place of the hard coded url string.

         var argsArray:Array;                                                                                          Any suggestions would be very welcome.

 

 

         operation = new mx.rpc.http.Operation(null, "Operation");

         operation.url = "mytest.php";

         operation.method = "GET";

         operation.serializationFilter = serializer0;

         operation.resultElementType = valueObjects.Mydata;

         operations.push(operation);

 

 

         _serviceControl.operationList = operations; 

 

 

 

 

         preInitializeService();

         model_internal::initialize();

    }

   

    //init initialization routine here, child class to override

    protected function preInitializeService():void

    {

     

    }

   

 

 

    /**

      * This method is a generated wrapper used to call the 'Operation' operation. It returns an mx.rpc.AsyncToken whose

      * result property will be populated with the result of the operation when the server response is received.

      * To use this result from MXML code, define a CallResponder component and assign its token property to this method's return value.

      * You can then bind to CallResponder.lastResult or listen for the CallResponder.result or fault events.

      *

      * @see mx.rpc.AsyncToken

      * @see mx.rpc.CallResponder

      *

      * @return an mx.rpc.AsyncToken whose result property will be populated with the result of the operation when the server response is received.

      */

    public function Operation() : mx.rpc.AsyncToken

    {

        var _internal_operation:mx.rpc.AbstractOperation = _serviceControl.getOperation("Operation");

                    var _internal_token:mx.rpc.AsyncToken = _internal_operation.send() ;

        return _internal_token;

    }

    

}

 

 

}

 

More Like This

  • Retrieving data ...

Bookmarked By (0)

Answers + Points = Status

  • 10 points awarded for Correct Answers
  • 5 points awarded for Helpful Answers
  • 10,000+ points
  • 1,001-10,000 points
  • 501-1,000 points
  • 5-500 points