2014-12-17 7 views
0

내가 익숙하지 않은 서버와 통신하는 방법을 사용하는 기존의 플래시 앱이 actionscript 2에 있습니다.loadVariables 추적 URL

액션 스크립트 2의 전역 함수 인 loadVariables() 메서드를 사용합니다. 레거시 코드는 의도 한대로 작동하지만 이식해야하므로 정확한 전송 내용을 파악할 수 없습니다.

_root.RemoteHost = "http://www.myserver.com/servlet"; 
_root.CMD = "INIT"; 
loadVariables(_root.RemoteHost, _root.data, "POST"); 

이것은 플래시의 라인을 따라 HTTP 요청을 생성하고 실행한다 :

http://www.myserver.com/servlet<magic>?CMD=INIT 

플래시에 의해 생성 된 마법 부분은 무엇입니까? 문자열로 생성 된 URL을 가져 오는 방법을 찾을 수 없습니다. 보내는 내용을 알아낼 수있는 방법이 있습니까?

미리 감사드립니다.

+0

질문이 명확하지 않습니다. 당신은'loadVariables' 대신에'sendAndLoad'에 대해서 말하고 있습니까? 누가 URL에 'http://www.myserver.com/servlet ? CMD = INIT'을 입력해야한다고 말했습니까? – akmozo

+0

코드는'loadVariables' 메소드를 사용하지만, 확실히 _root로부터 데이터를 전송하고 있습니다. 레거시 플래시 코드에서'loadVariables'를'sendAndLoad'로 대체하여 동의어가 어디에 있는지 서블릿에서 응답을받지 못했는지 확인하려고했습니다. 실제 URL에 ''이 포함되어 있지 않습니다. 생성 된 URL의 알 수없는 부분을 나타내는 지표로 사용하고 있습니다. HTML5 앱에서 서버에 접속할 때 내가 알고있는 URL 부분을 사용하면 '충분하지 않은 정보'메시지가 반환된다는 것을 알고 있습니다. 그러나 플래시가 생성하는 URL은 정확한 응답을 얻습니다. – Zwets

+0

상황을 이해했다면 HTML5 앱이 플래시 하나와 반대로 작동하지 않으므로 Flash에서 사용하는 URL을 서버에 연결하려는 이유가 무엇입니까? – akmozo

답변

0

서블릿에서 원하는 결과를 얻는 해결 방법을 만들 수있었습니다. 서블릿이 찾고 있지 않은 데이터를 안전하게 무시한다는 것을 알고 있기 때문에 가능한 모든 변수를 URL에 추가하고 HTML5 애플리케이션에 모두 포함 시켰습니다.

trace("<form action=\"" + _global.g_sRemoteHost + "\" method=\"POST\">"); 
trace("<fieldset>"); 
for(var id:String in _root) 
{ 
    var value:Object = _root[id]; 
    if(typeof(value)!= "function" && typeof(value)!= "movieclip" && typeof(value)!= "object") 
     trace("<input type=\"text\" name=\"" + id + "\" value=\"" + value + "\">"); 
} 
trace("<input type=\"submit\" value=\"Submit\">"); 
trace("</fieldset>"); 
trace("</form>"); 

이것은 끔찍한 해결책이지만 내 질문을 명확히하는 데 도움이되기를 바랍니다.