2010-05-24 49 views
2

我试图将数据发布到为我处理它的页面。我总是得到下面的错误,但是:在AIR应用程序中执行POST

事件。ioErrorHandler:IOErrorEvent类型= “ioError在” 气泡=假可取消=虚假的EventPhase = 2文本= “错误#2032:流式传输错误网址:http://localhost:8080/_user/a/ad/admin/message.create.html” ErrorID中= 2032] Blockquote

这是我到目前为止的代码。这适用于GET请求。

 // 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 
     loader.load(request); 

有人在这里看到问题吗?

回答

1

问题已解决。我创建了URLVariables而不是一个可以解决问题的对象。

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"]; 
0

首先检查你的网址。这就是流错误通常起作用的地方。确保你可以发布到你的flex应用程序之外的那个url。如果你不能,你可能会得到一个更好的错误信息。

你使用什么服务器端语言?你真的打算张贴到.html文件吗?

如果URL是准确的,请尝试使用一个键值对发送一个更简单的请求。

此外,我不知道,但你确定可以在表单变量名称中使用:冒号吗?我想这可能取决于您使用的服务器端语言。

+0

感谢您的帮助! 该URL绝对正确,我做了一个curl请求,并发布它应该。 在该URL(.html)上映射了一个Java servlet。 我使用冒号,因为这是后端所期望的,所以我没有自己的选择。 – PhysX 2010-05-25 12:57:56