代理设置存储在优先 https://developer.mozilla.org/en/Code_snippets/Preferences。你可能想要改变network.proxy.type
, network.proxy.http
and network.proxy.http_port
(文档 https://developer.mozilla.org/en/Mozilla_Networking_Preferences#Proxy)。像这样:
Components.utils.import("resource://gre/modules/Services.jsm");
Services.prefs.setIntPref("network.proxy.type", 1);
Services.prefs.setCharPref("network.proxy.http", "127.0.0.1");
Services.prefs.setIntPref("network.proxy.http_port", 8080);
如果您需要动态确定每个 URL 的代理,您可以通过以下方式使用功能提供程序nsIProtocolProxyService界面 https://developer.mozilla.org/en/XPCOM_Interface_Reference/nsIProtocolProxyService- 它允许您定义“代理过滤器”。像这样的东西应该有效:
var pps = Components.classes["@mozilla.org/network/protocol-proxy-service;1"]
.getService(Components.interfaces.nsIProtocolProxyService);
// Create the proxy info object in advance to avoid creating one every time
var myProxyInfo = pps.newProxyInfo("http", "127.0.0.1", 8080, 0, -1, 0);
var filter = {
applyFilter: function(pps, uri, proxy)
{
if (uri.spec == ...)
return myProxyInfo;
else
return proxy;
}
};
pps.registerFilter(filter, 1000);