导航:
论坛 -> Web应用开发
斑竹:bodies
作者:
2019/6/12 17:17:46
标题:
用idhttpserver + SSL 作为微信接口服务器
浏览:2220
加入我的收藏
楼主:
为了微信能调用https接口服务,用idhttpserver+ssl做了接口服务器。SSL证书是用openssl自签形成的。但启动后,用idhttp做的客户端测试访问,结果总是超时。也不知问题出在那,期间又购买了个证书替换也不能实现访问。体现在idhttpserver服务器中的IdHTTPServer1CommandGet没有反应。有那位大大指点一下。 这是https服务器启动 procedure TForm7.Button1Click(Sender: TObject); var appdir:string; begin try IdHTTPServer1.Bindings.Clear; IdHTTPServer1.DefaultPort:=8080; IdHTTPServer1.Bindings.Add.Port:= 443; IdHTTPServer1.Bindings.Add.IP := '148.XX.XX.XX'; // SSL stuff with idServerIOHandlerSSLOpenSSL1.SSLOptions do begin Mode := sslmServer; Method :=sslvSSLv23; appdir := ExtractFilePath(Application.ExeName); RootCertFile := appdir + 'cert\root.pem'; CertFile := AppDir + 'cert\cert.pem'; KeyFile := AppDir + 'cert\key.pem'; VerifyDirs := AppDir + 'cert\'; end; idHttpserver1.IOHandler := idServerIOHandlerSSLOpenSSL1; idHttpserver1.OnCommandGet:=IdHTTPServer1CommandGet; // END SSL stuff IdHTTPServer1.Active := True; showmessage('成功启动'); end; 在客户端为 try ResponseStream := TStringStream.Create('', TEncoding.UTF8); //为防中文乱码 try RequestList := TStringList.Create; RequestList.Add('username=wuweifgj'); RequestList.Add('userpass=12345678'); sHttpSocket := TIdHTTP.Create(nil); sshSocketHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil); sshSocketHandler.SSLOptions.Method:=sslvSSLv23; ssSocketHandler.SSLOptions.Mode:=sslmUnassigned; sHttpSocket.IOHandler := sshSocketHandler; Url := 'https://www.xxx.xx/getwe_data'; sHttpSocket.Request.ContentType :='application/x-www-form-urlencoded'; sHttpSocket.Post(url, RequestList, ResponseStream); except on e : Exception do begin ShowMessage(e.Message); end; end; finally sshSocketHandler.Free; sHttpSocket.Free; RequestList.Free; ResponseStream.Free; end; https请求后显示:connection closed gracefully,不知问题出在那,有idhttpserver+SSl布署经验的能指导一下吗
----------------------------------------------
ok
作者:
janker (janker)
★☆☆☆☆
-
盒子活跃会员
2019/6/12 17:19:52
1楼:
是不是SSL版本的问题?经常看到SSL版本不对的问题
----------------------------------------------
-
作者:
joman (joman)
▲▲▲▲▲
-
普通会员
2019/6/12 18:37:00
2楼:
建议nginx +你的服务 ssl部署到nginx
----------------------------------------------
DelphiWeb开发方案(开源):https://gitee.com/pearroom/DelphiWebMVC
作者:
2019/6/12 23:55:35
3楼:
一定要拿delphi来当万金油用也是醉了。 这种东西微信直接提供了java和php的demo,直接改改就可以用了。 花这么多时间折腾也是醉了。
----------------------------------------------
--
作者:
star5 (星五)
★☆☆☆☆
-
盒子活跃会员
2019/6/13 10:50:30
4楼:
要不,尝试一下webpascal? Demo\三方平台接入演示\微信公众号接口调用测试.api Demo\三方平台接入演示\微信综合接入演示\消息接收及处理接口.api Demo\三方平台接入演示\微信综合接入演示\资源上传演示Delphi
----------------------------------------------
博客 - http://offeu.com 脚本模型 - http://webpascal.com 需要短信接口的请联系我,可发行业与营销内容。
作者:
2019/6/13 11:57:36
5楼:
感谢joman和bahamut8348及star5的建议,我认为对我来说joman建议在nginx上使用可能更适合我一些,下面我来试试这个方法。看来idhttpserver作为https服务器是不太成功的。以后要改用java了。
----------------------------------------------
ok