2010-06-21 61 views
0

XML添加到SOAP請求我已經定義,像這樣一個Flex服務:如何在Flex中

<mx:operation name="postTableDetails" resultFormat="e4x" result="event.token.resultHandler(event);" fault="event.token.faultHandler(event);"> 
     <mx:request> 
      <catalog></catalog> 
      <schema></schema> 
      <table></table> 
      <details></details> 

不管怎麼說,我基本上有麻煩重置參數看起來更像:

<details create_time="x" table_type="x"> 
    <column name="c1" datatype="INT" /> 
    ... 
</details> 

在最終加載參數和調用服務我的AS功能,我在做這樣的事情:

var o:AbstractOperation = service.getOperation("postTableDetails"); 
o.arguments.catalog = catalog; 
... 
o.arguments.details = new XML(details); 

如果我TRA在我的「詳細信息」變種,然後o.arguments.details後,都是我期望的有效XML。但是,通過雲的實際要求將截取:

<details><column /></details> 

我已經受夠了簡單的請求,我只是填充類似的模式與一個字符串的成功,但現在這個更復雜的一個人我難住了。

回答

0

首先嚐試把下面的服務

contentType="application/xml" 

,然後又如果不鍛鍊,那麼最好有

request="{details}" 

試試吧,還是讓我知道。

+0

嗨Ravz,感謝您的幫助。不幸的是,contentType在運行時顯然是無效的,並且與XML綁定並不能真正起作用。我想我可能會用一些全局變量來破解它,但我想避免它。 – Kevin 2010-06-22 19:51:28

+0

嗨凱文,我已經使用綁定與XML。對我來說,它工作正常。不過,我一直在使用HTTPService。我不確定它是否適用於手術。 – Ravish 2010-06-23 03:36:06

0

所以我最終使用了Ravz的建議。我改變了服務定義,只是:

<mx:operation id="postTableDetails" name="postTableDetails" resultFormat="e4x" result="event.token.resultHandler(event);" fault="event.token.faultHandler(event);"> 
    </mx:operation> 

(添加了ID和刪除請求。)然後在委託,我給你的論點與這樣的搭配:

service.postTableDetails.request = XMLList(
      "<ns0:postTableDetails xmlns:ns0=\"http://nslinkfromwsdl/\">" + 
      "<catalog>"+cat+"</catalog>" + 
      "<schema>"+schema+"</schema>" + 
      "<table>" + table + "</table>" + 
      details + 
      "</ns0:postTableDetails>" 
      ); 

,這使得它正常工作。我想不必在那裏硬編碼那個鏈接,但我可以在另一天想出來!