Wicketで外部POSTリクエストから値を取得する
ActionScriptからのjsonデータを受け取ってそれをjsonicでオブジェクトに変換してDBに収めるという作業をしないといけなくなったので書いた。
もらったソース
<?xml version="1.0" encoding="utf-8"?> <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" backgroundColor="#FFFFFF"> <mx:Script> <![CDATA[ private function sendData():void{ var mytext:String = '[{"jobId":2,"memberId":1},{"jobId":4,"memberId":2},{"jobId":1,"memberId":3}]'; send.request.String = mytext; send.send(); } ]]> </mx:Script> <mx:Button label="送信!" click="sendData()" x="217" y="75"/> <mx:HTTPService id="send" url="http://localhost:8080/sample/hoge" useProxy="false"/> </mx:Application>
ActionScriptとか書いたことないけど何となく分かります。
HTTPServiceの部分に
method="POST"
がないのが気になったのですがなくても問題なかったのでデフォルトがPOSTになってるんでしょうかね
FromFlashPage.java
public class FromFlashPage extends WebPage{ public FromFlashPage(PageParameters param) { WebRequestCycle cycle = getWebRequestCycle(); String mytext = cycle.getRequest().getParameter("String"); System.out.println(mytext); } }
htmlは省略。とりあえずこれで送られてきたjsonのデータが取得できます。その後はJSONICでオブジェクトに変換してDBに突っ込むだけ。
RequestURLを見てみたところ
となっていたのでActionScript側の変数名ではなく型名がパラメータになっているみたいです。ほえー。