Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/408.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Indesign javascript套接字始终使用host:localhost执行请求_Javascript_Sockets_Adobe_Adobe Indesign - Fatal编程技术网

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" );