4
我正在向Web地址發送請求,以通過HTTPS連接獲取XML文件。但是這種連接的工作原理是50%。在大多數情況下,它失敗。常見的錯誤是「套接字錯誤#10060」。或者「連接SSL出錯,觀察到EOF違反協議」。我做錯了什麼?HTTPS後 - 我做錯了什麼?
function SendRequest(parameters: string): IXMLDocument;
var
sPostData: TStringList;
sHttpSocket: TIdHTTP;
sshSocketHandler: TIdSSLIOHandlerSocketOpenSSL;
resStream: TStringStream;
xDoc: IXMLDocument;
begin
sPostData := TStringList.Create;
try
sPostData.Add('add some parameter to post' + '&');
sPostData.Add('add some parameter to post' + '&');
sPostData.Add('add some parameter to post' + '&');
sPostData.Add(parameters);
sHttpSocket := TIdHTTP.Create;
sshSocketHandler := TIdSSLIOHandlerSocketOpenSSL.Create;
sHttpSocket.IOHandler := sshSocketHandler;
sHttpSocket.Request.ContentType := 'application/x-www-form-urlencoded';
sHttpSocket.Request.Method := 'POST';
resStream := TStringStream.Create;
sHttpSocket.Post(Self.sUrl, sPostData, resStream);
xDoc := CreateXMLDoc;
xDoc.LoadFromStream(resStream);
Result := xDoc;
resStream.Free;
sHttpSocket.Free;
sshSocketHandler.Free;
sPostData.Free;
except on E: Exception do
begin
TCommon.ErrorLog('errorLog.txt', DateTimeToStr(Now) + ' ' + E.Message);
end
end;
end;
也許我可以用另一種方式做到這一點,當互聯網連接可用時,它可以像100%一樣工作?
問候, evilone
幾歲的印版?如果是Delphi的,那麼從SVN獲取最新版本。你的OpenSSL庫有多大?它是v0.9.x還是1.x.x? – shunty 2010-12-23 08:11:26
我不完全清楚。隨着Delphi XE的出現。 OpenSSL庫的版本是1.0.0.3 – evilone 2010-12-23 08:34:09