Delphi 7 ye indy 10 kurma
Forum kuralları
Forum kurallarını okuyup, uyunuz!
Forum kurallarını okuyup, uyunuz!
Delphi 7 ye indy 10 kurma
Merhaba,
Bir projemizde kullandığımız WEB servisinde güncelleme yapıldı ve güvenlik nedeniyle SecurityProtocolType.Tls12 kullanmamız gerektiği söyleniyor. Indy 9.00.10 bileşenlerini kullanıyoruz ve anlayabildiğim kadarıyla IdSSLIOHandlerSocketOpenSSL bileşenini kullanmam lazım ve bu bileşen indy9'da yok, indy 10'da var.
* Yukarıda ifade etmeye çalıştığım sorun bu şekilde çözülür mü ?
? Çözülür ise, Indy 10 bileşenlerini nereden indirip kurabilirim ? www.indyproject.org/ sitesinden indiremiyorum.
Teşekkürler, Saygılar...
Bir projemizde kullandığımız WEB servisinde güncelleme yapıldı ve güvenlik nedeniyle SecurityProtocolType.Tls12 kullanmamız gerektiği söyleniyor. Indy 9.00.10 bileşenlerini kullanıyoruz ve anlayabildiğim kadarıyla IdSSLIOHandlerSocketOpenSSL bileşenini kullanmam lazım ve bu bileşen indy9'da yok, indy 10'da var.
* Yukarıda ifade etmeye çalıştığım sorun bu şekilde çözülür mü ?
? Çözülür ise, Indy 10 bileşenlerini nereden indirip kurabilirim ? www.indyproject.org/ sitesinden indiremiyorum.
Teşekkürler, Saygılar...
Sevgi, Saygı.....
Re: Delphi 7 ye indy 10 kurma
Merhaba,
Delphi 7 yerine alternatif olarak;
Lazarus 2.2.0 kullanabilirsiniz, Indy 10 destekli ve OPM (Online Package Manager) aracılığıyla paketin kurulumunu rahatlıkla yapabilirsiniz.
Delphi 7 yerine alternatif olarak;
Lazarus 2.2.0 kullanabilirsiniz, Indy 10 destekli ve OPM (Online Package Manager) aracılığıyla paketin kurulumunu rahatlıkla yapabilirsiniz.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Delphi 7 ye indy 10 kurma
Lazarus önerinizi de değerlendireceğim. Ama Indy10'u delphi7'ye kurabilirsem daha hızlı çözebilirim sanki sorunu ?
Delphi 7de kullandığım diğer bileşenler vs her şey çalışır mı acaba Lazarus'da ?
Delphi 7de kullandığım diğer bileşenler vs her şey çalışır mı acaba Lazarus'da ?
Sevgi, Saygı.....
Re: Delphi 7 ye indy 10 kurma
Büyük ihtimalle çalışacaktır. Denemekte kuvvetli yarar var.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Delphi 7 ye indy 10 kurma
Lazarus indirdim kurdum, ama Lazarusa Indy 10 nereden kuracağız, indy 10 bulup download edemedim ki ?
Ankara'da olup ücreti karşılığında sorunla ilgilenebilecek kimse varsa bağlantıya geçebiliriz.
Syg.
Ankara'da olup ücreti karşılığında sorunla ilgilenebilecek kimse varsa bağlantıya geçebiliriz.
Syg.
Sevgi, Saygı.....
Re: Delphi 7 ye indy 10 kurma
Lazarusu açın ardından Online Package Manager'ı çalıştırın Shift + Ctrl + Alt + O
İlgili paketi işaretleyip install edin. İndirme ve kurulum sonrasında Lazarus kendini yeniden başlatacaktır. Sonrasında sorunsuz çalışabilirsiniz.
Kalk ve işe yarar bir şey yap! Çünkü Allah (c.c.) yeniden başlayanların yardımcısıdır.
Re: Delphi 7 ye indy 10 kurma
Soruna çözüm olur mu bilmiyorum. Web servis SOAP mı yoksa REST mi belirtmemişsiniz. REST için evet çözüm olacaktır. SOAP için emin değilim.Salih yazdı: ↑28 Nis 2022 01:20 Merhaba,
Bir projemizde kullandığımız WEB servisinde güncelleme yapıldı ve güvenlik nedeniyle SecurityProtocolType.Tls12 kullanmamız gerektiği söyleniyor. Indy 9.00.10 bileşenlerini kullanıyoruz ve anlayabildiğim kadarıyla IdSSLIOHandlerSocketOpenSSL bileşenini kullanmam lazım ve bu bileşen indy9'da yok, indy 10'da var.
* Yukarıda ifade etmeye çalıştığım sorun bu şekilde çözülür mü ?
? Çözülür ise, Indy 10 bileşenlerini nereden indirip kurabilirim ? www.indyproject.org/ sitesinden indiremiyorum.
Teşekkürler, Saygılar...
Delphi7 üzerine Indy10 kurullumu sitede daha önce açıklanmış. Genelde Delphi 7 kurulumunu kullanarak eski Indy paketlerini kaldırmanız tavsiye ediliyor.
viewtopic.php?p=203104#p203104
Indy10 kodlarını günümüzde aşağıdaki bağlantıdan temin edebilirsiniz. ZIP olarak indirebilir veya SVN veya GIT uygulamaları ile kodları direk alabilirsiniz.
https://github.com/IndySockets/Indy
Mümkün ise daha yeni Delphi sürümlerine geçiş planlamanızda fayda var.
Re: Delphi 7 ye indy 10 kurma
WEB Servis SOAP hocam. Cevabınız ve önerileriniz için çok teşekkür ederim.ertank yazdı: ↑28 Nis 2022 11:35Soruna çözüm olur mu bilmiyorum. Web servis SOAP mı yoksa REST mi belirtmemişsiniz. REST için evet çözüm olacaktır. SOAP için emin değilim.Salih yazdı: ↑28 Nis 2022 01:20 Merhaba,
Bir projemizde kullandığımız WEB servisinde güncelleme yapıldı ve güvenlik nedeniyle SecurityProtocolType.Tls12 kullanmamız gerektiği söyleniyor. Indy 9.00.10 bileşenlerini kullanıyoruz ve anlayabildiğim kadarıyla IdSSLIOHandlerSocketOpenSSL bileşenini kullanmam lazım ve bu bileşen indy9'da yok, indy 10'da var.
* Yukarıda ifade etmeye çalıştığım sorun bu şekilde çözülür mü ?
? Çözülür ise, Indy 10 bileşenlerini nereden indirip kurabilirim ? www.indyproject.org/ sitesinden indiremiyorum.
Teşekkürler, Saygılar...
Delphi7 üzerine Indy10 kurullumu sitede daha önce açıklanmış. Genelde Delphi 7 kurulumunu kullanarak eski Indy paketlerini kaldırmanız tavsiye ediliyor.
viewtopic.php?p=203104#p203104
Indy10 kodlarını günümüzde aşağıdaki bağlantıdan temin edebilirsiniz. ZIP olarak indirebilir veya SVN veya GIT uygulamaları ile kodları direk alabilirsiniz.
https://github.com/IndySockets/Indy
Mümkün ise daha yeni Delphi sürümlerine geçiş planlamanızda fayda var.
Sevgi, Saygı.....
Re: Delphi 7 ye indy 10 kurma
Ilan kismina yorum yapmistim, sorunuz burada da varmis. Arkadaslar paylasmis Indy 10 nasil kurulabilir diye. Indy 9'da bir yolu var mi emin degilim.
Guncelleme: Asagidaki cevaba gore Indy10'a guncellemeniz gerekiyormus.
https://stackoverflow.com/questions/603 ... ecting-ssl
Guncelleme: Asagidaki cevaba gore Indy10'a guncellemeniz gerekiyormus.
https://stackoverflow.com/questions/603 ... ecting-ssl
Re: Delphi 7 ye indy 10 kurma
Bu cevap muhtemelen REST web servis için verilmiş. Ya da bir web sitesinden veri okumak için. SOAP Web servis için uygulanabilir mi emin değilim.mkysoft yazdı: ↑29 Nis 2022 01:13 Ilan kismina yorum yapmistim, sorunuz burada da varmis. Arkadaslar paylasmis Indy 10 nasil kurulabilir diye. Indy 9'da bir yolu var mi emin degilim.
Guncelleme: Asagidaki cevaba gore Indy10'a guncellemeniz gerekiyormus.
https://stackoverflow.com/questions/603 ... ecting-ssl
Re: Delphi 7 ye indy 10 kurma
IOHandler objesi iki nesne için de ortak, SOAP sorununu da çözecektir.
Re: Delphi 7 ye indy 10 kurma
indy 9'u kaldırmayı ve indy10 kurmayı sonunda başardım. Ancak web servise bağlanma sorunumu henüz çözemedim. Mevcut durumu detaylıca açıklayayım...
viewtopic.php?t=37040
adresinde mkysoft hocanın makalesindeki ipucunu kullandım. ssleay32.dll ve libeay32.dll dosyalarını projenin exe dosyası ile aynı dizine koydum. "idHttp.Get('https://www.mkysoft.com', s);" satırı çalıştığında 'HTTP/1.1 403 Forbidden mesajı alıyorum. Open SSL in düzgün çalıştığı anlamına geliyor diye yorumladım.
Aşağıdaki program yıllardır çalışan bir yapı. WEB servis sunucusu TLS1.2 ye geçince çalışmaz oldu.
Ulaşmaya çalıştığım web servisinin adresi şu şekilde http://gbo.isicamciyiz.biz/thirdparty.asmx?wsdl
Buradan thirdparty.WSDL dosyasını WSDL Importer ile çekip ayrı bir unit olarak projeye ekledim.
Programdan web servisi çağırdığım bölüm şu şekilde :
Günlerdir uğraşarak gelebildiğim nokta malesef burası, hata mesajı ile ilgili ve web servisle ilgili yardım edebilecek arkadaşlara şimdiden teşekkür ederim.
viewtopic.php?t=37040
adresinde mkysoft hocanın makalesindeki ipucunu kullandım. ssleay32.dll ve libeay32.dll dosyalarını projenin exe dosyası ile aynı dizine koydum. "idHttp.Get('https://www.mkysoft.com', s);" satırı çalıştığında 'HTTP/1.1 403 Forbidden mesajı alıyorum. Open SSL in düzgün çalıştığı anlamına geliyor diye yorumladım.
Aşağıdaki program yıllardır çalışan bir yapı. WEB servis sunucusu TLS1.2 ye geçince çalışmaz oldu.
Ulaşmaya çalıştığım web servisinin adresi şu şekilde http://gbo.isicamciyiz.biz/thirdparty.asmx?wsdl
Buradan thirdparty.WSDL dosyasını WSDL Importer ile çekip ayrı bir unit olarak projeye ekledim.
Programdan web servisi çağırdığım bölüm şu şekilde :
// mkysoft hocanın TLS1.2 ile ilgili yazdığı blok
IdOpenSSLSetLibPath(ExtractFilePath(Application.ExeName));
idSSLIOHandlerSocketOpenSSL1 := TIdSSLIOHandlerSocketOpenSSL.Create();
with idSSLIOHandlerSocketOpenSSL1 do
begin
SSLOptions.Method := sslvTLSv1_2;
SSLOptions.SSLVersions := [sslvTLSv1_2];
SSLOptions.Mode := sslmUnassigned;
SSLOptions.VerifyMode := [];
SSLOptions.VerifyDepth := 2;
end;
idHttp1 := TIdHttp.Create();
// mkysoft hocanın yazdığı blok sonu
//WEB servisi çağırdığım bölüm
try
IdHTTP1.request.UserAgent := 'Mozilla/5.0 (Windows NT 10.0; WOW64; rv:56.0) Gecko/20100101 Firefox/56.0';
strStream := idhttp1.Get('https://gbo.isicamciyiz.biz/thirdparty.asmx?WSDL');
// (Bu satırda daha önce hata veriyordu, şimdi hata vermeden geçiyor
except
raise Exception.Create('Internet bağlantısı yok');
end;
yGBO := GBO.Create;
yUrun := Urun.Create;
ySonuc:= Yanit.Create;
myList := TList.Create;
SeriNo := '';
EdGarNo.Text := SeriNo;
UrunEkle(self); // öncelikle bir veya daha fazla urun eklenmesi gerekiyor. bir tane ürün ekledik, hata vermeden geçti.
try
HTTPRIO1.HTTPWebNode.UseUTF8InHeader := True;
Servis :=GetthirdpartySoap(False, 'http://gbo.isicamciyiz.biz/thirdparty.asmx', HTTPRIO1);
// Servis :=GetthirdpartySoap(True); //ERNUR deneme
yGBO.serviceuser := '';
yGBO.servicepassword := '';
yGBO.cariId := 'xxxx';
yGBO.caripassword := 'xxxxxx';
yGBO.musteriAdSoyad := EdMusteri.Text;
yGBO.firmaAdi := EdBayi.Text;
yGBO.faturaTarihi := EdFatTarih.Text;
yGBO.faturaNo := EdFatNo.Text;
yGBO.vergiNo := EdVergiNo.Text;
yGBO.MukerrerGBKontrol := True;
yGBO.Type_ := 'C';
SetLength(yArray, MyList.Count);
For i := 0 To MyList.Count-1 Do
yArray := MyList;
ySonuc := Servis.garantiBelgesiOlusturV2(yGBO, yArray); // HATA MESAJI ALDIĞIMIZ SATIR BURASI İŞTE
// WEB servisten gelen verileri alıp değerlendirdiğimiz bölüm
PRAdres := ySonuc.productTable;
QRAdres := ySonuc.QRcode;
QRRefno := ySonuc.QRrefno;
SeriNo := ySonuc.serialNo;
Status := ySonuc.status;
..
...
....
.....
Urunekle bölümü
procedure TForm1.UrunEkle(Sender: TObject);
begin
Screen.Cursor := crSQLWait;
try
yUrun.adet := strToInt(EDAdet.Text);
yUrun.metrekare := TXSDecimal.Create;
yUrun.metrekare.DecimalString := EDAlan.Text;
yUrun.urunSeri := C;
yurun.ucluSistem := true;
... diğer yurun.xx değişkenlerine atamalar
myList.Add(yUrun); // yeni WEB serviste kullanılan yöntem
finally
Screen.Cursor := crDefault;
end;
end;
ySonuc := Servis.garantiBelgesiOlusturV2(yGBO, yArray); // bu satırda aldığımız hata mesajı şu şekilde :
---------------------------
Debugger Exception Notification
---------------------------
Project siparis.exe raised exception class EDOMParseError with message 'End tag 'ul' does not match the start tag 'p'.
Line: 96
</ul>'. Process stopped. Use Step or Run to continue.
---------------------------
OK Help
---------------------------
HTTPRIO1BeforeExecute bölümünde yazılan SoapRequest şu şekilde :
<?xml version="1.0"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<SOAP-ENV:Body>
<garantiBelgesiOlusturV2 xmlns="http://tempuri.org/"> // bu adres mi hatalı acaba ? ama önceden de bu şekildeydi
<garantiBelgesi>
<serviceuser></serviceuser>
<servicepassword></servicepassword>
<cariId>123456</cariId>
<caripassword>123456</caripassword>
<musteriAdSoyad>Ahmet YILMAZ</musteriAdSoyad>
<firmaAdi>Müşteri adı 1</firmaAdi>
<faturaTarihi>21.04.2022</faturaTarihi>
<faturaNo>012346</faturaNo>
<vergiNo>123456789</vergiNo>
<MukerrerGBKontrol>true</MukerrerGBKontrol>
<Type>C</Type>
</garantiBelgesi>
<myUrunList>
<Urun>
<urunSeri>C</urunSeri>
<adet>1</adet>
<InvoiceLineNumber>1</InvoiceLineNumber>
<metrekare>12.34</metrekare>
<ucluSistem>false</ucluSistem>
<T>false</T>
<R>false</R>
<RF>false</RF>
<L>false</L>
<AL>false</AL>
<ip></ip>
<CCBProductId>1</CCBProductId>
</Urun>
</myUrunList>
</garantiBelgesiOlusturV2>
</SOAP-ENV:Body>
</SOAP-ENV:Envelope>
HTTPRIO1AfterExecute bölümünde yazılan SoapResponse şu şekilde :
<html>
<head><link rel="alternate" type="text/xml" href="/thirdparty.asmx?disco" />
<style type="text/css">
BODY { color: #000000; background-color: white; font-family: Verdana; margin-left: 0px; margin-top: 0px; }
#content { margin-left: 30px; font-size: .70em; padding-bottom: 2em; }
A:link { color: #336699; font-weight: bold; text-decoration: underline; }
A:visited { color: #6699cc; font-weight: bold; text-decoration: underline; }
A:active { color: #336699; font-weight: bold; text-decoration: underline; }
A:hover { color: cc3300; font-weight: bold; text-decoration: underline; }
P { color: #000000; margin-top: 0px; margin-bottom: 12px; font-family: Verdana; }
pre { background-color: #e5e5cc; padding: 5px; font-family: Courier New; font-size: x-small; margin-top: -5px; border: 1px #f0f0e0 solid; }
td { color: #000000; font-family: Verdana; font-size: .7em; }
h2 { font-size: 1.5em; font-weight: bold; margin-top: 25px; margin-bottom: 10px; border-top: 1px solid #003366; margin-left: -15px; color: #003366; }
h3 { font-size: 1.1em; color: #000000; margin-left: -15px; margin-top: 10px; margin-bottom: 10px; }
ul { margin-top: 10px; margin-left: 20px; }
ol { margin-top: 10px; margin-left: 20px; }
li { margin-top: 10px; color: #000000; }
font.value { color: darkblue; font: bold; }
font.key { color: darkgreen; font: bold; }
font.error { color: darkred; font: bold; }
.heading1 { color: #ffffff; font-family: Tahoma; font-size: 26px; font-weight: normal; background-color: #003366; margin-top: 0px; margin-bottom: 0px; margin-left: -30px; padding-top: 10px; padding-bottom: 3px; padding-left: 15px; width: 105%; }
.button { background-color: #dcdcdc; font-family: Verdana; font-size: 1em; border-top: #cccccc 1px solid; border-bottom: #666666 1px solid; border-left: #cccccc 1px solid; border-right: #666666 1px solid; }
.frmheader { color: #000000; background: #dcdcdc; font-family: Verdana; font-size: .7em; font-weight: normal; border-bottom: 1px solid #dcdcdc; padding-top: 2px; padding-bottom: 2px; }
.frmtext { font-family: Verdana; font-size: .7em; margin-top: 8px; margin-bottom: 0px; margin-left: 32px; }
.frmInput { font-family: Verdana; font-size: 1em; }
.intro { margin-left: -15px; }
</style>
<title>
thirdparty Web Service
</title></head>
<body>
<div id="content">
<p class="heading1">thirdparty</p><br>
<span>
<p class="intro">The following operations are supported. For a formal definition, please review the <a href="thirdparty.asmx?WSDL">Service Description</a>. </p>
<ul>
<li>
<a href="thirdparty.asmx?op=CertificateCancel">CertificateCancel</a>
</li>
<p>
<li>
<a href="thirdparty.asmx?op=GuaranteeCertificateIsCreatedByInvoiceNumber">GuaranteeCertificateIsCreatedByInvoiceNumber</a>
</li>
<p>
<li>
<a href="thirdparty.asmx?op=garantiBelgesiOlustur">garantiBelgesiOlustur</a>
</li>
<p>
<li>
<a href="thirdparty.asmx?op=garantiBelgesiOlusturV2">garantiBelgesiOlusturV2</a>
</li>
<p>
<li>
<a href="thirdparty.asmx?op=urunEkle">urunEkle</a>
</li>
<p>
<li>
<a href="thirdparty.asmx?op=urunEkleV2">urunEkleV2</a>
</li>
<p>
</ul>
</span>
<span>
</span>
<span>
<hr>
<h3>This web service is using http://tempuri.org/ as its default namespace.</h3>
<h3>Recommendation: Change the default namespace before the XML Web service is made public.</h3>
<p class="intro">Each XML Web service needs a unique namespace in order for client applications to distinguish it from other services on the Web. http://tempuri.org/ is available for XML Web services that are under development, but published XML Web services should use a more permanent namespace.</p>
<p class="intro">Your XML Web service should be identified by a namespace that you control. For example, you can use your company's Internet domain name as part of the namespace. Although many XML Web service namespaces look like URLs, they need not point to actual resources on the Web. (XML Web service namespaces are URIs.)</p>
<p class="intro">For XML Web services creating using ASP.NET, the default namespace can be changed using the WebService attribute's Namespace property. The WebService attribute is an attribute applied to the class that contains the XML Web service methods. Below is a code example that sets the namespace to "http://microsoft.com/webservices/":</p>
<p class="intro">C#</p>
<pre>[WebService(Namespace="http://microsoft.com/webservices/")]
public class MyWebService {
// implementation
}</pre>
<p class="intro">Visual Basic</p>
<pre><WebService(Namespace:="http://microsoft.com/webservices/")> Public Class MyWebService
' implementation
End Class</pre>
<p class="intro">C++</p>
<pre>[WebService(Namespace="http://microsoft.com/webservices/")]
public ref class MyWebService {
// implementation
};</pre>
<p class="intro">For more details on XML namespaces, see the W3C recommendation on <a href="http://www.w3.org/TR/REC-xml-names/">Namespaces in XML</A>.</p>
<p class="intro">For more details on WSDL, see the <a href="http://www.w3.org/TR/wsdl">WSDL Specification</a>.</p>
<p class="intro">For more details on URIs, see <a href="http://www.ietf.org/rfc/rfc2396.txt">RFC 2396</a>.</p>
</span>
</body>
</html>
Günlerdir uğraşarak gelebildiğim nokta malesef burası, hata mesajı ile ilgili ve web servisle ilgili yardım edebilecek arkadaşlara şimdiden teşekkür ederim.
Sevgi, Saygı.....
Re: Delphi 7 ye indy 10 kurma
idHttp1 nesnesine daha önce oluşturulup hazırlanan IO Handler'ı kullanması gerektiğini bildirmemişsiniz.
Çok uzun zaman oldu Indy kullanmıyorum. idHttp1.IOHandler yanlış olabilir. Kontrol edip doğrusunu yazmanız gerekebilir.
Kod: Tümünü seç
idHttp1 := TIdHttp.Create();
idHttp1.IOHandler := idSSLIOHandlerSocketOpenSSL1; // Bu satır eklenmeli
Re: Delphi 7 ye indy 10 kurma
Yanıt için teşekkür ederim, Idhttp1.IOHandler şu şekilde tanımlı durumda :ertank yazdı: ↑05 May 2022 01:54 idHttp1 nesnesine daha önce oluşturulup hazırlanan IO Handler'ı kullanması gerektiğini bildirmemişsiniz.Çok uzun zaman oldu Indy kullanmıyorum. idHttp1.IOHandler yanlış olabilir. Kontrol edip doğrusunu yazmanız gerekebilir.Kod: Tümünü seç
idHttp1 := TIdHttp.Create(); idHttp1.IOHandler := idSSLIOHandlerSocketOpenSSL1; // Bu satır eklenmeli
https://www.hizliresim.com/m0lyw00
Sevgi, Saygı.....
Re: Delphi 7 ye indy 10 kurma
HTTPRIO1 nesnesi icin IOHandler atamayi unutmussunuz sanirim.