开发者

Do POST in AIR application

I'm trying to post data to a page that handles it for me. I always get following error, however:

ioErrorHandler: [IOErrorEvent type="ioError" bubbles=false cancelable=false eventPhase=2 text="Error #2032: Stream Error. URL: http://localhost:8080/_user/a/ad/admin/message.create.html" errorID=2032] Blockquote

This is the code I have so far. This works fine for GET requests.

        // Object that contains data of the message to be sent
        var toSend:Object = {
            "sakai:type": "internal",
            "sakai:sendstate": "pending",
            "sakai:messagebox": "outbox",
            "sakai:to": "internal:"+sakaimain.gui.dgMessages.selectedItem["to"],
            "sakai:subject": sakaimain.gui.dgMessages.selectedItem["subject"],
            "sakai:body":"testreply with AIR GUI",
            "sakai:previousmessage" : sakaimain.gui.dgMessages.selectedItem["id"]
        };
        // Send message
        // Create loader to load objects
        var loader:URLLoader = new URLLoader();
        // Add event listeners for error and complete events
        loader.addEventListener(Event.COMPLETE, replyMessageCompleteHandler);
        loader.addEventListener(IOErrorEvent.IO_ERROR, replyMessageErrorHandler);
        // Create the request to be done
        var request:URLRequest = new URLRequest("http://localhost:8080/_user/a/ad/admin/message.create.html");
        request.requestHeaders = new Array(new URLRequestHeader("x-sakai-token", sakaimain.token ));
        request.method = URLRequestMethod.POST;
        request.data = toSend;
        // Do the request
   开发者_JAVA技巧     loader.load(request);

Anyone seeing the problem here?


The problem has been solved. I created URLVariables instead of an object to pass through which fixed the problem.

var urlv:URLVariables = new URLVariables();
urlv["sakai:type"] = "internal";
urlv["sakai:sendstate"] = "pending";
urlv["sakai:messagebox"] = "outbox";
urlv["sakai:to"] = "internal:"+sakaimain.gui.dgMessages.selectedItem["from"];
urlv["sakai:subject"] = sakaimain.gui.dgMessages.selectedItem["subject"];
urlv["sakai:body"] ="testreply with AIR GUI";
urlv["sakai:previousmessage" ] = sakaimain.gui.dgMessages.selectedItem["id"];


Check your url first. Thats where the stream error generally comes into play. Make sure you can post to that url outside of your flex application. If you can't, you will probably get a better error message.

What server-side language are you using? Are you really intending to be posting to a .html file?

If the url is accurate, try sending a simpler request with only one key-value pair.

Also, I don't know, but are you sure that it is okay to have a : colon in the form variable name? I would guess that might depend on the server side language you are using.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜