Indesign javascript套接字始终使用host:localhost执行请求
我正在尝试使用套接字连接读取远程网站上的文件。到目前为止,我的代码:Indesign javascript套接字始终使用host:localhost执行请求,javascript,sockets,adobe,adobe-indesign,Javascript,Sockets,Adobe,Adobe Indesign,我正在尝试使用套接字连接读取远程网站上的文件。到目前为止,我的代码: conn = new Socket; if( conn.open( 'example.com:80' ) ) { conn.write( 'GET /indesign-page/ HTTP/1.0' + "\n\n" ); reply = conn.read(999999); conn.close(); } else { alert( 'Problem connecting to server'
conn = new Socket;
if( conn.open( 'example.com:80' ) ) {
conn.write( 'GET /indesign-page/ HTTP/1.0' + "\n\n" );
reply = conn.read(999999);
conn.close();
} else {
alert( 'Problem connecting to server' );
}
套接字可以连接到example.com,但请求如下:
GET http://localhost/indesign-page/ HTTP/1.0
什么时候应该是这样:
GET http://example.com/indesign-page/ HTTP/1.0
我尝试将conn.write参数更改为“GET…”,但结果是:
GET http://localhosthttp://example.com/indesign-page/ HTTP/1.0
Web服务器要求正确设置主机以正确服务。是否需要使用手动套接字对象?在上有一个已经创建的地方提到了这一点,您可以调用GET或PUT到FTP服务器上的文件 否则,您将使用哪个操作系统?如果您始终使用Mac电脑,您可以使用AppleScript命令将文件放置在您喜欢的任何位置:
var command = 'do shell script "curl http://localhost/indesign-page"';
var response = app.doScript(command, ScriptLanguage.APPLESCRIPT_LANGUAGE);
AppleScript的好处在于,您可以使用AppleScript编辑器(如果早于10.6,则使用脚本编辑器)手动执行命令。您需要设置“主机”标题
因为conn.open('example.com:80')
意味着查找example.com的服务器ip,然后在80端口连接该ip地址,所以web服务器在连接到example.com之前不知道您已解析了它
conn.write( 'GET /indesign-page/ HTTP/1.0' + "Host: example.com\r\n" + "\n\n" );