我可以通过发送系统命令并使用pipe
来使用curl来访问REST API
filename fn pipe "curl -k -u &user.:&pass. 'https://blahblah.com/rest/api/content/108428908/child/attachment' ";
data new;
infile fn;
input;
put _infile_;
run;
这可行,但是我想使用PROC HTTP,所以我将响应返回到.json文件而不是日志中,并且可以使用SAS密码加密。这是我的PROC HTTP代码:
filename out "/blah/blahblah/output.json";
proc http
url = 'https://blahblah.com/rest/api/content/108428908/child/attachment'
method = "GET"
webusername = "&user"
webpassword = "&pass"
out = out
;
run;
这可以给我一个json文件,但是我返回的json文件说“不允许用户查看内容的附件”,这是我在添加-k
之前从curl获得的响应选项(即--insecure
)。
那么我该如何在PROC HTTP中执行-k
的等效功能? (告诉SAS不要检查SSL证书)。除了可以在.SAS文件中指定的选项之外,不能修改任何选项,因为我无权更改这些选项。
答案 0 :(得分:4)
是否将SSLREQCERT标志设置为选项?根据{{3}},您似乎可以使用ALLOW
选项来告诉服务器允许失败SSL握手的连接。
答案 1 :(得分:1)
这里最正确的答案是不要忽略SSL问题,而是将证书添加到运行PROC HTTP的计算机上的相应信任管理器/密钥存储中。这样做的方法因OS和SAS版本而异。 This documentation page will provide some insight into how to do this.