DELPHI7操作INHTTP访问SSL出错信息解决方法

使用IdHttp访问Https网址时,要加一个IdSSLIOHandlerSocket控件,设置idhttp的IOHandler属性为IdSSLIOHandlerSocket控件。

procedure TForm1.Button1Click(Sender: TObject);
var
  RData_TreatPost:string;
  FormParam:TStrings;
begin
  FormParam:=TStringList.Create;

。。。。。。。。。。。。。。。。

  FormParam.Add('minititle=');
  FormParam.Add('minipara=');
  FormParam.Add('pstrong=');
  FormParam.Add('longLogin=1');
  FormParam.Add('llnick=');
  FormParam.Add('sign=');
  FormParam.Add('need_sign=');
  FormParam.Add('not_duplite_str=');
  FormParam.Add('need_user_id=');
  FormParam.Add('from_encoding=');

   RData_TreatPost:='https://login.taobao.com/member/login.jhtml';
   Memo1.clear;
   HtmlEdit1.HTML:=(IdHTTP1.Post(RData_TreatPost,FormParam));
   Memo1.Lines.Add('OK');
   FormParam.Free;

end;

可能出现的错误:

1、stock error 1004#: 类似错误是因为网络问题,组件打不开相关网址引起。所以要检查下你的电脑网络,在IE中访问试下能否打开相关的网址。

2、http1.1 ,HTTP500内部错误:类似错误是因为Idhttp.Post后面的参数内容出错,格式不符合网站的要求引起,如    FormParam.Add('longLogin=1&'); 正常如上段代码,但这里却画蛇添足,加多了一个&. 如此之类。

3、can't load ssl library:类似错误是因为缺少两个DLL,使用SSL时,要在当前目录下放两个OPENSSL的DLL,分别是libeay32.dll和ssleay32.dll,而且它们有版本要求,不同的indy版本对应不同的DLL版本,虽然DLL名字一样。

猜你喜欢

转载自blog.csdn.net/delphi1234/article/details/5804719
今日推荐