前辈们delphi7——idhttp——post(json格式参数)——访问https报错

乙楽乙 2016-11-25 04:58:01
[size=13px]各位大神们,组件有tidhttp+IdSSLIOHandlerSocket1小弟第一次写这个post 访问 https://api.acewill.net 传入的值为{"cno": "15268561755"} 底部有两个控件的属性图
但是每次都报 "Error connecting with SSL." 也有几次是报socket error #11004 请前辈们帮帮我谢谢你们了。
代码如下:

procedure TForm1.Button1Click(Sender: TObject);
var
Url :string;
resstring :TStringStream;
response :string;
ResponseStr : string;

SSLopen :TIdSSLIOHandlerSocket;
reqstr :TStringStream;
tempstr, tempstr2, sjc :string;
begin
try
IdHTTP1 :=TIdHTTP.Create(nil);
IdHTTP1.Request.ContentType :='application/json';
resstring := TStringStream.Create('');
reqstr := TStringStream.Create('');

SSLopen := TIdSSLIOHandlerSocket.Create(IdHTTP1);
IdHTTP1.IOHandler := SSLopen;
IdHTTP1.ReadTimeout :=50000;
// IdHTTP1.Request.Connection :='Keep-Alive';
try
Url := 'https://api.acewill.net/user/account';
sjc :=Gettimestamp; //时间戳
tempstr :='cno%3D15862536136&appid=dp0DjvD81zqwJlOzxGfPjMJ&appkey=329cad81ebabce4b1a6203a202959fb3&v=2.0&ts='+Gettimestamp+'';
tempstr2 := MD5Print(MD5String(tempstr)); //生成sig签名
tempstr:='req={"cno":"15862536136"}&appid=dp0DjvD81zqwJlOzxGfPjMJ&v=2.0&ts='+Gettimestamp+'&sig='+tempstr2+'&fmt=JSON';

//以流的方式提交参数
resstring.Position :=0;
reqstr.WriteString(tempstr);
IdHTTP1.Post(Url,reqstr,resstring);
except
on e : Exception do
begin
ShowMessage(e.Message);
end;
end;
ResponseStr := resstring.DataString;
ResponseStr := UTF8Decode(ResponseStr);
Memo1.Text := ResponseStr;
finally
IdHTTP1.Free;
resstring.Free;
reqstr.Free;
end;
end;
...全文
3934 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
古城浪子 2017-01-05
  • 打赏
  • 举报
回复
下载两个DLL到你的可执行文件目录:libeay32.dll和ssleay32.dll
乙楽乙 2016-11-25
  • 打赏
  • 举报
回复
顶!d=====( ̄▽ ̄*)b顶!d=====( ̄▽ ̄*)b顶!d=====( ̄▽ ̄*)b顶!d=====( ̄▽ ̄*)b呼叫大神

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧