Kodları lütfen aşağıdaki butonları kullanarak renklendirin. Örnek: <php> echo "Selam Dünya"; </php>
Yardım
karakter kaldı

Https web servis kullanımı hakkında

Merhabalar bütün gün web servisleri kullanımı hakkında araştırma yaptım bundan önce hiç bir şey bilmiyordum web servisi ile ilgili okuduğum makalelerden biraz bilgi edindim normalde c#ile çalışıyorum bunun için ama çok farketmez genel mantık nasıl yapmam gerektiği konusunda yardımcı olabilirseniz sevinirim. vs2010da yeni proje açıp references -> add service reference -> advanced -> add web reference diyorum ve urlyi giriyorum.bi kaç uygulamayı çalıştırdım inceledim ve anladım biraz örneğin http://www.webservicex.net/globalweather.asmx?wsdl bu urlyi eklediğim zaman bulabiliyor ve ekliyebiliyorum http olanlarda sorun olmuyo olabilir fakat şuan PTT için bir uygulama yapmam gerekiyor. https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay?WSDL bu urlyi girdiğim zaman güvenlik hatası vs veriyor.

hata :
There was an error downloading 'https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay?WSDL'.
The underlying connection was closed: An unexpected error occurred on a send.
Received an unexpected EOF or 0 bytes from the transport stream.
There was an error downloading 'https://interakt

yardımcı olabilicek varsa çok sevinirim.
  • merhaba, bu problemi çözdünüz mü?aynı hatayı alıyorum da, acaba çözümü paylaşmanız mümkün müdür?
    adriana 9 yıl önce yazdı
  • Merhabalar Vs yeni proje açılır İnternet explorerde https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay?wsdl bu link açılır içindeki kodları aynen alıp c: sürücüsüne kaydedelim (ptt.wsdl) olarak Web reference sağ tıkla ->add web reference diyip c:\ptt.wsdl diyoruz Web servis ekleniyor sonra pcde yüklü olan wsdl.exeyi aratıp bulun tam yerini Command prompta wsdl c:\ptt.wsdl olarak çalıştırın Hata verecektir ama ptt.cs diye bir dosya oluşturacaktır bunu alın pro
    omercyprus 9 yıl önce yazdı
  • projeye import edin sonra ptt.cs kodunun içini kopyalayın Projede reference.cs içerisindekileri silip buraya yapıştırın. Reference.cs dosyasında http://localhost:8888 olarak yazan url’yi https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay bunla değiştirin. Son olarakda Kodların içine düzenleme yaparak çalıştırabilirsiniz System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
    omercyprus 9 yıl önce yazdı
  • çok teşekkür ederim.
    adriana 9 yıl önce yazdı
  • rica ederim http://tr.linkedin.com/pub/%C3%B6mer-oru%C3%A7/3b/758/910 projelerde yardımlaşmak isterseniz linkedin'den ulaşabilirsiniz.
    omercyprus 9 yıl önce yazdı
+1
-0
Cevaba KatılıyorumKatılmıyorum
Cevap Yaz Yorum Yaz Arşivime Ekle Takip Et

Doğru Cevap

  • Supervisor adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    107 cevap - 0 soru
    Firewall a takiliyor olabilirsin .senin IP static ve tanimli mi firewallda ? boyle firmalarin servislerini firewall olmadan kullanmazsin
    • omercyprus adlı üyenin fotoğrafı omercyprus
      evde denedim şimdi burada aynı şeyi yaptı iş yerimde firewall var . İp static iş yerinde :/ :( neden olmuyor bilmiyorum aslında buluyor methodu ama hatalar var ekleyemiyorum::/
      10 yıl önce yazılmış
    • Supervisor adlı üyenin fotoğrafı Supervisor
      firewala takilmadigindan emin misin ?
      10 yıl önce yazılmış
    • Supervisor adlı üyenin fotoğrafı Supervisor
      web browserdan ulasmayi dene . ulasirsan sorun firewall degildir o zaman.
      servisi cagirirken sertifikayi yukluyor musn
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      Valla şu uygulamalarda güvenli olduğuna eminseniz başlatın çıkıyorya bitek o var kabul ediyom methodu buluyor aama hata veriyor. web browserda link açınca görebiliyorum zaten xml bilgileri sen deneyenildinmi bu web servisini kullanmayı ben yeni başladığımdan yapamamış olabilirim.
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      nasıl yükliyecem sertifikayı bilmiyorumki
      10 yıl önce yazılmış
    • Supervisor adlı üyenin fotoğrafı Supervisor
      su sekilde bir dener misin ? authorization istiyor olabilir.


      try

      {

      HttpWebResponse resp;

      string targetUrl;

      targetUrl = "https servis adresi";

      HttpWebRequest request = (HttpWebRequest)WebRequest.Create(targetUrl);

      Response.Write("Connecting to URL: " + targetUrl + "<br>");



      // ister xmli dosyadan okut ister kendin string builder a doldur



      StringBuilder sb = new StringBuilder();

      //String inputXml;

      using (StreamReader inputQueryReader = new StreamReader("C:\\1.xml"))

      {

      sb.Append(inputQueryReader.ReadToEnd());

      }

      Response.Write("post edecegin zml :" + sb.ToString() + "<br>");



      // encode post data and set up the request NOTE: input xml is passed a a parameter named NETCONNECT_TRANSACTION'



      sb.Append("&NETCONNECT_TRANSACTION=" + sb.ToString());



      String postData = sb.ToString();

      Response.Write("genel gidecek xml: " + postData);



      byte[] AuthBytes = Encoding.ASCII.GetBytes("aa:aa");

      string sAuth = Convert.ToBase64String(AuthBytes);


      // burda authorization ekleniyor

      request.Headers.Add("Authorization", "Basic " + sAuth);

      // kullanici adi sifren

      NetworkCredential cred = new NetworkCredential("aa", "aa");



      byte[] postDataBytes = Encoding.UTF8.GetBytes(postData);

      request.Credentials = cred;



      request.Method = "POST";

      request.ContentType = "application/x-www-form-urlencoded";

      request.ContentLength = postDataBytes.Length;

      Stream requestStream = request.GetRequestStream();

      requestStream.Write(postDataBytes, 0, postDataBytes.Length);

      requestStream.Close();




      resp = (HttpWebResponse)request.GetResponse();

      Response.Write("Gelen cevap :<br>");

      StreamReader responseReader = new StreamReader(resp.GetResponseStream(), Encoding.UTF8);

      Response.Write(responseReader.ReadToEnd());

      resp.Close();

      }

      catch (Exception ex)

      {

      Response.Write(ex.ToString());

      }

      }
      10 yıl önce yazılmış

Cevaplar

  • omercyprus adlı üyenin fotoğrafı
    10 yıl önce yazılmış
    4 cevap - 8 soru
    Bi arkadaş bole demiş
    Authentication gereği, https lerde sadece yetkili kişilerin o verilere erişim hakkının olduğunu söylediler. IIS ayarlamasını yapan kişinin koyduğu erişim iznine göre, her ne kadar web servis olsa da, eğer yetkisi yoksa o erişime açık olmaz dediler. Yani genel olarak ulaşamazmışsın.

    fakat benm bunları kullanma yetkim var ama nasıl kullancam onu bilmiyorum :S

    https://interaktifkargo.ptt.gov.tr/kargo_musteri/proje/koli/page/www/musteri/musteri_login.jsp

    burada hesabım var ve bu webservisi kullanabiliyoruz aslında ama ben yeni olduğum için bilmiyorum şuan sorabileceğim kimsede yok. ptt'den yardım istedim ama çok yüzeysel bilgi verilmiş şuan başka bişi yapamıyoruz< demişler
    • omercyprus adlı üyenin fotoğrafı omercyprus
      biraz gelişme yaşadım :) wsdl i açınca en sonda servis adresi localhost gözüküyor . bunun için bağlantı kuramıyor bunun yerine interaktifkargo.ptt.gov.tr nin ip adresini yazabiliriz direk 212.175.152.46 yazdım içeriği servis.asmx olarak kaydettim sonra visual studio 2010da c# uygulaması açıp web servis ekledim servis.asmx i localhostumda www klasorune atıp localhost/servis.amsx?wsdl olarak ekleyince buluyor methodu ekledim şimdi kullanmaya geldi onun için kod yazmaya çalışıyorum
      10 yıl önce yazılmış
    • siyahbeyaz adlı üyenin fotoğrafı siyahbeyaz
      pek saglam olacagini sanmiyorum. ipler pek stabil kalmior. belli bir sureden sonra ipler degisior. bunun icin ufak bir sistem yapabilirsin. adrese ping atip gelen ipsi alip yazdirma gibi. giris icin olayi iste post göndermen lazım.
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      cevap için teşekürler evet ip gözden geçirilebilir haklısın. Ama Ayarlanır hele bişiler yapalımda :) sadece postla nasıl yapabilir bu konuda fikriniz var mı ?
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      post yerine
      WebReference.borc td = new WebReference.borc();
      td.Url = "soru sayfasının linki";
      NetworkCredential myCredentials = new NetworkCredential("adi", "sifre");
      td.Credentials = myCredentials;
      td.getBorcAsync(0123123, 2);

      bole bir şey buldum bole kullanabilirmiyim bilmiyorum daha öğrenecek çok şey var.
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      private void Form1_Load(object sender, EventArgs e)
      {

      pttservis.tr_gov_ptt_kp_KurumRumuzSorguInput pttsorgu = new ptttakip.pttservis.tr_gov_ptt_kp_KurumRumuzSorguInput();

      }
      private void button1_Click(object sender, EventArgs e)
      {

      pttservis.tr_gov_ptt_kp_KurumRumuzSorguInput pttsorgu = new ptttakip.pttservis.tr_gov_ptt_kp_KurumRumuzSorguInput();

      pttsorgu.ilk_Barkod = "2780200945841";
      pttsorgu.musteriId = Convert.ToInt32("id girilecek");
      pttsorgu.rezerv1 = "0123456789";
      pttsorgu.rezerv2 = "012345678901234567890123456789";
      pttsorgu.rezerv3 = "012345678901234567890123456789";
      pttsorgu.son_Barkod = "2780200945872";

      pttservis.tr_gov_ptt_kp_KurumRumuzSorgu pttyanit = new ptttakip.pttservis.tr_gov_ptt_kp_KurumRumuzSorgu();
      pttyanit.musteri_id = Convert.ToInt32(textBox1.Text);

      pttyanit.SONUC = textBox2.Text;


      pttservis.tr_gov_ptt_kp_GonderiSafahat pttsaf = new ptttakip.pttservis.tr_gov_ptt_kp_GonderiSafahat();
      pttsaf.BARKOD = textBox3.Text;
      pttsaf.IMERK = textBox4.Text;
      pttsaf.ISLEM = textBox5.Text;
      pttsaf.ITARIH = textBox6.Text;
      pttsaf.REZERVE_SONUC1 = textBox7.Text;
      pttsaf.REZERVE_SONUC2 = textBox8.Text;

      }
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      uğraşıyorum ama olmuyor yokmu yardım edicek ?
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      wsdl dosyamıza
      <?xml-stylesheet type="text/xsl" href="wsdl-viewer.xsl"?>
      bu kodu ekleyip xml olarak kaydedip wsdl-viewer.xsl dosyasıyla aynı klasore atıp tarayıcıda çalıştırdığımda

      kodu birazdaha anlaşılır bir biçime getiriyor.
      http://www.websiteci.com/blog/?p=126 burada detaylı anlayılmış gayet iyi

      [URL=http://imageshack.us/photo/my-images/406/89175663.png/][IMG]http://img406.imageshack.us/img406/5138/89175663.png[/IMG][/URL]

      Uploaded with [URL=http://imageshack.us]ImageShack.us[/URL]
      10 yıl önce yazılmış
    • omercyprus adlı üyenin fotoğrafı omercyprus
      Merhabalar

      Vs yeni proje açılır
      İnternet explorerde
      https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay?wsdl bu link açılır içindeki kodları aynen alıp
      c: sürücüsüne kaydedelim (ptt.wsdl) olarak
      Web reference sağ tıkla ->add web reference diyip c:\ptt.wsdl diyoruz
      Web servis ekleniyor sonra pcde yüklü olan wsdl.exeyi aratıp bulun tam yerini
      Command prompta wsdl c:\ptt.wsdl olarak çalıştırın
      Hata verecektir ama ptt.cs diye bir dosya oluşturacaktır bunu alın projeye import edin sonra ptt.cs kodunun içini kopyalayın
      Projede reference.cs içerisindekileri silip buraya yapıştırın.
      Reference.cs dosyasında http://localhost:8888 olarak yazan url’yi https://interaktifkargo.ptt.gov.tr/topluTakipDetay/topluTakipDetay bunla değiştirin.
      Son olarakda
      Kodların içine düzenleme yaparak çalıştırabilirsiniz

      System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;

      Bu protokolu ekleyiniz.
      kurumsal üyelik var değil mi ?
      herkez sorgulayamıyor
      müşteri id
      ilk barkod
      son barkod
      girecen
      System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Ssl3;
      tr_gov_ptt_kp_KurumRumuzSorguInput krminput = new tr_gov_ptt_kp_KurumRumuzSorguInput();
      tr_gov_ptt_kp_KurumRumuzSorgu krmoutput = new tr_gov_ptt_kp_KurumRumuzSorgu();
      tr_gov_ptt_kp_GonderiSafahat safahat = new tr_gov_ptt_kp_GonderiSafahat();
      topluTakipDetay abc = new topluTakipDetay();
      krminput.musteriId = müşteri id yazılacak;
      string reserve1;
      string reserve2;
      System.Threading.Thread.Sleep(100);
      krminput.ilk_Barkod = barkodnoilk;
      krminput.son_Barkod = barodnoson;
      krminput.rezerv1 = "123456789";
      krminput.rezerv2 = "123456789";
      krminput.rezerv3 = "123456789";
      try
      {
      krmoutput = abc.gonderiSorgula(krminput);
      for (int i = 0; i < krmoutput.safahatlar.Length; i++)
      {
      string barkod = krmoutput.safahatlar[i].BARKOD.ToString();
      string merkez = krmoutput.safahatlar[i].IMERK.ToString();
      string islem = krmoutput.safahatlar[i].ISLEM.ToString();
      if (krmoutput.safahatlar[i].REZERVE_SONUC1 == null)
      {
      reserve1 = " ";
      }
      else
      {
      reserve1 = krmoutput.safahatlar[i].REZERVE_SONUC1.ToString();
      }
      if (krmoutput.safahatlar[i].REZERVE_SONUC2 == null)
      {
      reserve2 = " ";
      }
      else
      {
      reserve2 = krmoutput.safahatlar[i].REZERVE_SONUC2.ToString();
      }

      dataGridView2.ColumnCount = 6;
      dataGridView2.ColumnHeadersVisible = true;
      DataGridViewCellStyle columnHeaderStyle = new DataGridViewCellStyle();
      columnHeaderStyle.BackColor = Color.Beige;
      columnHeaderStyle.Font = new Font("Verdana", 10, FontStyle.Bold);
      dataGridView2.ColumnHeadersDefaultCellStyle = columnHeaderStyle;
      dataGridView2.Columns[0].Name = "Barkod";
      dataGridView2.Columns[1].Name = "Merkez";
      dataGridView2.Columns[2].Name = "Islem";
      dataGridView2.Columns[3].Name = "Islem Tarihi";
      dataGridView2.Columns[5].Name = "Rezerve Sonuc1";
      dataGridView2.Columns[4].Name = "Rezerve Sonuc2";
      int x = dataGridView2.Rows.Add();
      dataGridView2.Rows[x].Cells[0].Value = krmoutput.safahatlar[i].BARKOD.ToString();
      dataGridView2.Rows[x].Cells[1].Value = krmoutput.safahatlar[i].IMERK.ToString();
      dataGridView2.Rows[x].Cells[2].Value = krmoutput.safahatlar[i].ISLEM.ToString();
      dataGridView2.Rows[x].Cells[3].Value = krmoutput.safahatlar[i].ITARIH.ToString();
      dataGridView2.Rows[x].Cells[5].Value = krmoutput.safahatlar[i].REZERVE_SONUC1.ToString();
      dataGridView2.Rows[x].Cells[4].Value = krmoutput.safahatlar[i].REZERVE_SONUC2.ToString();

      }
      }
      catch (Exception ex)
      {
      MessageBox.Show(ex.Message);


      }
      9 yıl önce yazılmış