Doğru Cevap
-
Firewall a takiliyor olabilirsin .senin IP static ve tanimli mi firewallda ? boyle firmalarin servislerini firewall olmadan kullanmazsin
-
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::/11 yıl önce yazılmış -
Supervisor
firewala takilmadigindan emin misin ?11 yıl önce yazılmış -
Supervisor
web browserdan ulasmayi dene . ulasirsan sorun firewall degildir o zaman.
servisi cagirirken sertifikayi yukluyor musn11 yıl önce yazılmış -
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.11 yıl önce yazılmış -
omercyprus
nasıl yükliyecem sertifikayı bilmiyorumki11 yıl önce yazılmış -
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());
}
}11 yıl önce yazılmış
-
Cevaplar
-
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
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ışıyorum11 yıl önce yazılmış -
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.11 yıl önce yazılmış -
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ı ?11 yıl önce yazılmış -
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.11 yıl önce yazılmış -
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;
}11 yıl önce yazılmış -
omercyprus
uğraşıyorum ama olmuyor yokmu yardım edicek ?11 yıl önce yazılmış -
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]11 yıl önce yazılmış -
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);
}11 yıl önce yazılmış
-