【发布时间】:2013-01-30 19:55:00
【问题描述】:
尝试启动并运行 Adobe 的 Socket 对象。我有这个代码:
var reply = "";
var conn = new Socket;
// access Adobe’s home page
if (conn.open("www.adobe.com:80"))
{
// send a HTTP GET request
conn.write ("GET /index.html HTTP/1.0\n\n");
// and read the server’s reply
reply = conn.read(999999);
conn.close();
alert(reply.toString());
}
else
{
alert(conn.error);
}
而且它不起作用。 conn.error 被解雇了,所以我知道问题出在conn.open 上。这是我收到的错误消息:
也尝试了许多其他网站;没有任何效果。但如果我将www.adobe.com:80 切换到localhost:8080,一切都会按预期进行。
编辑
我肯定已将其缩小为代理问题。但我不知道该怎么办,如果我必须修复我的脚本,或者我是否必须与 IT 交谈以了解是否允许代理连接。
这是我的代码所在:
if (conn.open("proxyserver.com:port"))
{
conn.write ("CONNECT www.adobe.com:443 HTTP/1.0\n\n");
reply = conn.read(999999);
alert(reply.toString());
}
这让我得到以下信息:
但除此之外,我无能为力。我只能做443端口(我认为是https);端口 80 不适用于任何站点。我认为这更像是一个代理问题而不是脚本问题。但是,当我使用端口 443 并获得连接时,我不知道如何处理该连接。之后我尝试发送一个 GET 请求,它返回空白。
【问题讨论】:
-
你确定
con.open函数需要一个字符串吗?我不确定js,但是在.net中,您可以将对象定义为http对象。另外,如果您尝试在地址中添加“http://”会怎样? -
@BGM Here's the documentation。样本都带字符串。我也尝试添加
http://,但没有成功。 Adobe Socket 对象似乎是它自己独特的动物。我在上面进行了编辑以显示我的进度;我想我只是在通过代理交谈时遇到问题,而且我对 HTTP 请求缺乏了解。感谢您对这个问题的兴趣! -
我看到你有另一个相关的问题。老实说,我没有足够的知识来解决这个问题。我只是提供一个疯狂的猜测。我在 php 中使用了一个套接字过程一次,它使用
fputs,在不同的套接字发送上使用每个命令。换句话说,也许您可以尝试在一行中执行conn.write("GET...),然后在另一行中发送conn.write(CONNECT...)。另一个想法 - 也许你必须先登录? -
有什么办法可以在连接错误报告中获得更详细的信息?
标签: javascript adobe-indesign extendscript