DELPHI盒子
!实时搜索: 盒子论坛 | 注册用户 | 修改信息 | 退出
检举帖 | 全文检索 | 关闭广告 | 捐赠
技术论坛
 用户名
 密  码
自动登陆(30天有效)
忘了密码
≡技术区≡
DELPHI技术
lazarus/fpc/Free Pascal
移动应用开发
Web应用开发
数据库专区
报表专区
网络通讯
开源项目
论坛精华贴
≡发布区≡
发布代码
发布控件
文档资料
经典工具
≡事务区≡
网站意见
盒子之家
招聘应聘
信息交换
论坛信息
最新加入: xiao2024
今日帖子: 15
在线用户: 14
导航: 论坛 -> Web应用开发 斑竹:bodies  
作者:
男 xhj123 (xhj123) ★☆☆☆☆ -
普通会员
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
作者:
男 bahamut8348 (leonna) ★☆☆☆☆ -
普通会员
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
需要短信接口的请联系我,可发行业与营销内容。
作者:
男 xhj123 (xhj123) ★☆☆☆☆ -
普通会员
2019/6/13 11:57:36
5楼: 感谢joman和bahamut8348及star5的建议,我认为对我来说joman建议在nginx上使用可能更适合我一些,下面我来试试这个方法。看来idhttpserver作为https服务器是不太成功的。以后要改用java了。
----------------------------------------------
ok
信息
登陆以后才能回复
Copyright © 2CCC.Com 盒子论坛 v3.0.1 版权所有 页面执行78.125毫秒 RSS