【问题标题】:Fetching xml content from web server with Extendscript for After Effects使用 Extendscript for After Effects 从 Web 服务器获取 xml 内容
【发布时间】:2015-07-30 14:09:08
【问题描述】:

我正在尝试在 After Effects 脚本中获取托管在 Web 服务器上的 XML 文件。

谁能澄清为什么这种方法似乎不起作用?

//var xml_path = "/c/test.xml";
var xml_path = "http://transfer.proshopeurope.com/TEMP/test.xml";

function getXML(){
    var xml_file = new File(this.xml_path);

    if(xml_file.open("r")){
        var xml_string = xml_file.read();
        var xml = new XML(xml_string);
        xml_file.close();
        return xml;
    }else{
        return false;
    }
}
$.writeln(getXML());

顺便说一句,如果我使用顶部注释掉的本地路径,它就可以正常工作。

【问题讨论】:

    标签: xml http adobe extendscript after-effects


    【解决方案1】:

    你不能使用'new File'作为url,你需要使用'Sockets':

    reply = "";
    conn = new Socket;
    
    if (conn.open ("transfer.proshopeurope.com:80")) {
        // send a HTTP GET request
        conn.writeln("GET /TEMP/test.xml HTTP/1.0\r\nHost: transfer.proshopeurope.com\r\n");
        // and read the server's reply
        reply = conn.read(999999);
        conn.close();
    }
    

    这会将所有响应返回到“回复”,然后您应该使用正则表达式来仅获取 xml。

    【讨论】:

      【解决方案2】:

      您不一定需要使用套接字。主要原因是套接字不支持 SSL。因此,如果您的连接是通过 SSL 进行的,ExtendScripts 套接字将失败。

      您可以使用 system.callSystem() 进行 shell 调用。例如,查看this SO question 中“EDIT 2”下的代码,我不久前问过。

      如需更深入的讨论,请查看this thread on Adobe's Forums,我在其中讨论了更多细节。

      【讨论】:

        猜你喜欢
        • 2013-01-18
        • 1970-01-01
        • 2015-01-26
        • 2021-08-18
        • 1970-01-01
        • 2012-02-22
        • 1970-01-01
        • 1970-01-01
        • 2013-11-27
        相关资源
        最近更新 更多