我正在使用 V-11.7,在不同的场景中使用 HttpClient 没有任何问题,GET、POST、上传文件、获取响应等。但现在我必须将 XML 上传到需要有效证书的公共管理 URL .
我必须使用 P12 证书连接到网络服务,但我看不到方法。
或者,我使用 cURL 使用以下命令来完成此操作:
lcComan = "C:\Teragest\FacE\curl.exe" +
" -k" +
" -H " + CHR(34) + "Content-type: application/xml;charset=UTF-8" + CHR(34) +
" --data-binary @" + lcFiche + ".xml" +
" -o " + lcFiche + "out.xml" +
" -v" +
" --key " + lcpemKey +
" --cacert " + lcpemCacert +
" --cert " + lcpemCert + ":" + lcpemPass +
" " + lcUrl.
OS-COMMAND VALUE(lcComan).
我不必接收二进制文件,在这种情况下他的响应是一个简单的 XML。
我尝试添加引用证书的标头,但根本不起作用:
oLib = ClientLibraryBuilder:Build():sslVerifyHost(NO):LIBRARY. /*ServerNameIndicator("pruebas- ticketbai.araba.eus"):SetSSLProtocols(cSSLProtocols):SetSSLCiphers(cSSLCiphers):library. */
oHttpClient = ClientBuilder:Build():UsingLibrary(oLib):Client.
oRequest = RequestBuilder:Post(lcUrl,oDocument):AddHeader("Content-Type","application/xml;charset=UTF-8")
:AddHeader("key", lcpemKey)
:AddHeader("cacert", lcpemCacert)
:AddHeader("--cert-type","P12")
:AddHeader("--cert", cRuta + cNif + ".p12" + ":" + lcpemPass):Request.
oResponse = ResponseBuilder:Build():Response.
oHttpClient:Execute(oRequest, oResponse).`
有一种方法可以用 HttpClient 来做到这一点吗?谢谢大家!
在发出请求之前,需要将 SSL 证书添加到 OpenEdge 客户端的证书存储中。
%dlc%我