【问题标题】:Adobe socket object not working with proxyAdobe 套接字对象不适用于代理
【发布时间】:2013-01-30 19:55:00
【问题描述】:

尝试启动并运行 Adob​​e 的 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


【解决方案1】:

确保您的防火墙没有阻止访问您的代理服务器 - 特定端口也可能需要打开。

或者,也许代理没有设置为使用端口 80?如果使用443端口,那不就是SSL吗?你需要证书吗?您的代理似乎只接受 SSL 连接。

也许可以尝试使用 IP 地址而不是域名:192.150.14.12:80 是 adobe pdf 提供的。

【讨论】:

    猜你喜欢
    • 2014-04-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-12-10
    相关资源
    最近更新 更多