是否有人成功地从 Illustrator 脚本 (.jsx
) 发出 HTTP 请求并愿意分享如何实现?
我目前正在 OS X 上试验 CS3,但 CS4–5.5 也可以。
我找到了一个使用 Bridgetalk 来利用 Bridge 的套接字连接的示例,但到目前为止还无法使其工作。
有人提到了 libcurl 的包装器,并且想到了一个简单的 bash 脚本。还没有找到太多关于如何实现这两个目标的信息。
任何意见/建议/提示将不胜感激!
最佳答案
这似乎是一个真正的边缘情况,这里概述了我最终所做的事情。我计划找个时间写一篇关于我的解决方案的博文,但它的边缘仍然很粗糙。
出于某种奇怪的原因,人工智能似乎确实无法发出 HTTP 请求,而大多数其他 Adobe (CS) 应用程序却可以这样做。但事实证明,人们可以使用一个名为 BridgeTalk 的库(所有 CS 应用程序都附带该库)来促进不同应用程序之间的通信。
BridgeTalk 通过 Adobe 的 Bridge 应用程序(正如您可能已经猜到的那样)并启用序列化代码的异步(和同步,使用一个小技巧)执行。
Bridge 附带一个 Web 套接字库,可用于向外部服务器发出请求。我的 AI 脚本现在通过小型自定义 API 和 HTTP 包装器,最终我使用了 Extendables framework 中的 HTTP 解析器。来处理响应。为了简单起见,我强制同步请求。
举个例子,我最终创建的 API 看起来像这样(假设对象 foo
具有属性 uuid
):
function synchFoo(foo) {
var options = {
path : '/api/foos/' + foo.uuid + 'sync',
format: 'json',
method: 'POST',
host : '127.0.0.1:3000',
data : fooDataToString(foo)
}
var response = bridgeHTTP.sendSynch(options);
return JSON.parse(response.body);
}
这种方法是我唯一可以使用的方法(跨人工智能版本),并且仍然相当不稳定,因此尚未准备好发布。不过,围绕此解决方案的项目已被放弃,所以不要屏住呼吸。
关于scripting - 如何从 Illustrator 脚本发出 HTTP 请求?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10125404/