Konuyu Oyla:
  • Derecelendirme: 2/5 - 2 oy
  • 1
  • 2
  • 3
  • 4
  • 5
Hal Kayıt Sistemi Web Servis
#21
(01-12-2017, Saat: 14:43)ismailkocacan Adlı Kullanıcıdan Alıntı:
(01-12-2017, Saat: 13:57)eyln Adlı Kullanıcıdan Alıntı: Delphi ile oluşturdum. C# 'a çok hakim değilim...
XML'i text olarak oluşturup idhhtp ile post ettim bad request hatası aldım bu defada...
Peki Delphi'den istek XML'i namespace'li olarak mı gönderdiniz ?

Sizin gönderdiğiniz XML'i text olarak procedure içerisinde değişkene atadım ve post ettim.

Diğer taraftan Delphi içinden name spaceli olarak nasıl gönderileceği konusunda bilginiz varmı?
Cevapla
#22
(01-12-2017, Saat: 15:46)eyln Adlı Kullanıcıdan Alıntı:
(01-12-2017, Saat: 14:43)ismailkocacan Adlı Kullanıcıdan Alıntı: Peki Delphi'den istek XML'i namespace'li olarak mı gönderdiniz ?

Sizin gönderdiğiniz XML'i text olarak procedure içerisinde değişkene atadım ve post ettim.

Diğer taraftan Delphi içinden name spaceli olarak nasıl gönderileceği konusunda bilginiz varmı?

Araştırmak lazım. XML'leri farklı gördüğüm için, namespace dedim.Problem namespace de olmayabilir.Ama servisin düzgün çalıştığı aşikar.
WWW
Cevapla
#23
Merhaba Arkadaşlar,
Sorunu çözemedim.Bu isteği HTTP post ile yapmak mümkün mü? Teşekkürler.
Cevapla
#24
Merhaba, 
WSDL den oluşan pas dosyasını biraz değiştirmem gerekti. Ayrıca kodların ile de biraz oynadım. Elimde kullanıcı adı şifre bilgileri olmadığı için tam bir test alamadım. 


Pas dosyasını buradan indirebilirsin.

var
gonder : BaseRequestMessageOf_ListOf_BildirimKayitIstek;
cevap  : BaseResponseMessageOf_ListOf_BildirimKayitCevap;
istk   : BildirimKayitIstek2;
begin
try
screen.Cursor := crHourGlass;

gonder       :=   BaseRequestMessageOf_ListOf_BildirimKayitIstek.Create;

istk := BildirimKayitIstek.Create;

gonder.UserName := 'username';
gonder.Password := 'passs';
gonder.ServicePassword := '_webpass' ;


istk.UniqueId :='****-6**56';
istk.BildirimTuru :=206;
istk.ReferansBildirimKunyeNo :=0;

istk.BildirimciBilgileri := BildirimciBilgileriDTO2.Create;
istk.BildirimciBilgileri.KisiSifat :=6; //Tüccar hal içi


istk.IkinciKisiBilgileri := IkinciKisiBilgileriDTO2.Create;
istk.IkinciKisiBilgileri.CepTel := '*******';  //+
istk.IkinciKisiBilgileri.Eposta := ' ';  //+
istk.IkinciKisiBilgileri.TcKimlikVergiNo := '*******'; //+
istk.IkinciKisiBilgileri.YurtDisiMi := false; //+
istk.IkinciKisiBilgileri.KisiSifat := 4; //+
istk.IkinciKisiBilgileri.AdSoyad := '**** *****'; //+

istk.BildirimMalBilgileri :=  BildirimMalBilgileriDTO.Create;
istk.BildirimMalBilgileri.UretimIlId:= 15;
istk.BildirimMalBilgileri.UretimIlceId:= 855;
istk.BildirimMalBilgileri.UretimBeldeId:= 785;
istk.BildirimMalBilgileri.MalinNiteligi:= 1;
istk.BildirimMalBilgileri.MalinKodNo:= 319 ;
istk.BildirimMalBilgileri.UretimSekli:= 28;
istk.BildirimMalBilgileri.MalinCinsiId:= 1265;
istk.BildirimMalBilgileri.MiktarBirimId:= 74;
istk.BildirimMalBilgileri.MalinMiktari:= 250;
istk.BildirimMalBilgileri.MalinSatisFiyat:= 0.50;
istk.BildirimMalBilgileri.GelenUlkeId:= 0;
istk.BildirimMalBilgileri.AnalizeGonderilecekMi:=false;


istk.MalinGidecekYerBilgileri :=  MalinGidecekYerBilgileriDTO2.Create;
istk.MalinGidecekYerBilgileri.GidecekYerIsletmeTuruId:=7;// hal içi işyeri
istk.MalinGidecekYerBilgileri.GidecekIsyeriId:=47477;
istk.MalinGidecekYerBilgileri.GidecekUlkeId:=0;
istk.MalinGidecekYerBilgileri.GidecekYerIlId:=70;
istk.MalinGidecekYerBilgileri.GidecekYerIlceId:=78;
istk.MalinGidecekYerBilgileri.GidecekYerBeldeId:=45794;
istk.MalinGidecekYerBilgileri.BelgeNo:='F0002';
istk.MalinGidecekYerBilgileri.BelgeTipi:=208;
istk.MalinGidecekYerBilgileri.AracPlakaNo:='******';


gonder.Istek := ArrayOfBildirimKayitIstek2.Create;
gonder.Istek.SetBildirimKayitIstek2ArrayLength(1);
gonder.Istek.SetBildirimKayitIstek2Array(0, istk);

cevap  := GetIBildirimService().BildirimServisBildirimKaydet(gonder) ;


 if cevap.Sonuc.Len > 0 then
 begin
  ShowMessage( cevap.Sonuc[0].YeniKunyeNo.ToString );
 end
 else
 begin
  ShowMessage('İŞLEM KODU : ' + cevap.IslemKodu + sLineBreak +
             'HATA MESAJI : ' + cevap.HataKodlari[0].Mesaj + sLineBreak +
             'HATA KODU : ' + cevap.HataKodlari[0].HataKodu.ToString
            );
 end;


finally
 Screen.Cursor := crDefault;
END;


Amatör Küme Bilgisayar Programcısı
WWW
Cevapla
#25
Ali bey ilginiz için teşekkürler.Denedim ancak aynı hatayı aldım ayrıca fiddlerden baktığımda xml hiç oluşmamış görünüyor.
Cevapla
#26
(05-12-2017, Saat: 20:33)eyln Adlı Kullanıcıdan Alıntı: Ali bey ilginiz için teşekkürler.Denedim ancak aynı hatayı aldım ayrıca fiddlerden baktığımda xml hiç oluşmamış görünüyor.

Merhaba, 
Sanırım pas dosyasını kaydetmeden klasörden kopyaladım. Aşağıda ki linkten proje olarak indirebilirsiniz. Fiddler oturum kaydı (.saz) dosyası da rar içerisinde.

https://mega.nz/#!f1NQGCTT!w4-5FN8lYjInB...WDno3T2bLA


LOWazj.png
Amatör Küme Bilgisayar Programcısı
WWW
Cevapla
#27
Ali Bey ,

Çok teşekkür ederim.Çok sıkıntı çektiğim bir konuyu sayenizde çözmüş oldum.PAS dosyasındanki değişiklikler hakkında bilgi vermeniz mümkünmü
zira bu test sisteminden import ettiğim dosyaydı.Aynı değişiklikleri canlı sistemden import edeceğim dosyadada yapmam gerekecek.

Elinize sağlık...
Cevapla
#28
(05-12-2017, Saat: 22:03)eyln Adlı Kullanıcıdan Alıntı: Ali Bey ,

Çok teşekkür ederim.Çok sıkıntı çektiğim bir konuyu sayenizde çözmüş oldum.PAS dosyasındanki değişiklikler hakkında bilgi vermeniz mümkünmü
zira bu test sisteminden import ettiğim dosyaydı.Aynı değişiklikleri canlı sistemden import edeceğim dosyadada yapmam gerekecek.

Elinize sağlık...


Merhaba,

WebServisi import ederken parametreler ekranında aşağıda ki ekran görüntüsünde sarı ile işaretlediğim kısmın TİKLİ olması gerekiyor. 
Access Violation ve Object Reference not set to an Instance of an Object hataları almamak için Nesneleri Create ettiğinizden ve Dizilerin uzunluğunu belirtirken setLength yerine webservisin içinde bulunan kendi methodunu kullandığınızdan emin olun.. 

Örnek olarak
gonder.Istek := ArrayOfBildirimKayitIstek2.Create; // Create ettik.
gonder.Istek.SetBildirimKayitIstek2ArrayLength(1); // Dizinin uzunluğunu kendi methodunu kullanarak verdik.
gonder.Istek.SetBildirimKayitIstek2Array(0, istk); // Diziyi yine kendi methodu ile doldurduk. 
 



6yLkD9.png
Amatör Küme Bilgisayar Programcısı
WWW
Cevapla
#29
Ali bey ,Tekrar teşekkürler.Çok ince bir detay ancak bilgi ve tecrübe ile çözülebilirdi. İmport ederken o seçeneklere hiç bakmadım bile.
Elinize sağlık.
Cevapla
#30
(05-12-2017, Saat: 22:32)eyln Adlı Kullanıcıdan Alıntı: Ali bey ,Tekrar teşekkürler.Çok ince bir detay ancak bilgi ve tecrübe ile çözülebilirdi. İmport ederken o seçeneklere hiç bakmadım bile.
Elinize sağlık.

Merhaba,
Bahsetmiş olduğunuz bu bilgi ve beceriye +4 puanla ekstra katkıda bulunabilirsiniz.
DelphiCan'dır!
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Modern Servis Uygulama İskeleti Tuğrul HELVACI 24 24.943 06-05-2026, Saat: 21:47
Son Yorum: frmman
  Datasnap veritabanı kayıt serdar 2 357 30-11-2025, Saat: 10:53
Son Yorum: serdar
  Rest servis api uygulaması yapma tuna 13 1.373 17-10-2025, Saat: 18:40
Son Yorum: tuna
  Veri Tabanına Kontrollü Kayıt Yaptırma bünyamin68 20 4.257 08-06-2025, Saat: 09:40
Son Yorum: izmaimen
  fastreport şablonu database e kayıt ercanskose 11 2.450 18-02-2025, Saat: 17:10
Son Yorum: akuyumcu63



Konuyu Okuyanlar: 1 Ziyaretçi