idHTTP1-Sms Gönderim Kodu

Delphi'de kod yazma ile ilgili sorularınızı bu foruma yazabilirsiniz.
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

idHTTP1-Sms Gönderim Kodu

Mesaj gönderen CinAnka »

Merhaba;

Telsim üzerinden bir numaraya sms yollamak istiyorum. Bunun için sitede bulunan diğer kaynaklardan faydalanarak aşağıdaki kodu yazdım.

IDHTTP1 bileşenini kullandım:

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
 Var aStream: TStringStream;
              Params: TStringList;
              str:String;
begin
     aStream := TSTringStream.Create(''); 
     Params := TStringList.create;
    idHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
     try
        with idHTTP1 do begin 
          try
             str:='';
             str:='<?xml version="1.0" encoding="iso-8859-9" ?>';
             str:=str+'<message-context type="smmgsd" >';
             str:=str+'<username>';
             str:=str+'xxx';
             str:=str+'</username>';
             str:=str+'<password>';
             str:=str+'xxx';
             str:=str+'</password>';
             str:=str+'<outbox-name>';
             str:=str+'VADI';
             str:=str+'</outbox-name>';
             str:=str+'<reference>';
             //str:=str+'0';
             str:=str+'</reference>';
             str:=str+'<start-date>';
             str:=str+'</start-date>';
             str:=str+'<expire-date>';
             //str:=str+'m3';
             str:=str+'</expire-date>';
             str:=str+'<message-type>';
             str:=str+'0';
             str:=str+'</message-type>';
             //str:=str+'<message-header>';
             //str:=str+'</message-header>';
             str:=str+'<text>';
             str:=str+'bu bir denemedir';
             str:=str+'</text>';
             str:=str+'<gsmnos>';
             str:=str+'905354579355';
             str:=str+'</gsmnos>';
             str:=str+'</message-context>';
             params.text:=str;
             idHTTP1.Post('http://www.biotekno.biz:8080/SMS-Web/xmlsms',Params,aStream);
             memo1.Text:= astream.DataString;
             memo1.Lines.Add(idHTTP1.ResponseText);
          except
             on E: Exception do
                showmessage('Error encountered during POST: ' + E.Message);
          end;
        end;
     except
     end;
end;

formuma bir tane idHTTP1, 1 button, 1 tane de memo bileşeni ekledim. buttona basınca, memoda bana mesaj raporu iletiliyor.

rapor şöyle dönüyor:

Kod: Tümünü seç


1    2 wrong title
2    00 OK

wrong title ile kasıt ne? hata ne anlayamadım... ve raporun 2. sçeneğinde 00 (başarılı) raporu döndürüyor ama xml içinde belirtmiş olduğum numaraya sms gönderilmiyor. Neden??

Hata ya da eksik nerede?
En son CinAnka tarafından 12 Nis 2006 04:11 tarihinde düzenlendi, toplamda 1 kere düzenlendi.
Güçlü olan haklı değil, haklı olan güçlüdür!
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

arkadaşlaaarr;

sorunu çözdüm, outbox-name, servis sağlayıcı firmam tarafından bana verilen başlık idi, ben yanlış yazmışım...onun dışında tıkır tıkır işliyor...

böylece, sms gönderimi yapacak olan arkadaşlara, tam takır işleyen bir program sunmuş oldum soru vesilesi ile... inşallah işinize yarar...

kolay gelsinler...
Güçlü olan haklı değil, haklı olan güçlüdür!
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

hocam ben verdiğiniz kodu aynen delphiye yapıştırdım.
butona tıklayınca memo1 in içeriği şöyle oldu.

Kod: Tümünü seç

90 XML Parser Hatasi : The value following "version" in the XML declaration must be a quoted string.
HTTP/1.1 200 OK
olayı daha detaylı yazarsanız sevinirim.
saygılarımla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

bi de bu kodda username falan filan yazan yerler var oralara ne yazacağız?
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

merhaba;

delphi nin hangi versiyonunu kullanıyorsunuz? delphi 6 içerisinde bulunan parser işi hallediyor. daha alt bir versiyon (delphi4-5) kullanıyorsanız hata oradan kaynaklanmış olabilir.

yukarıda vermiş olduğum kodu kullanıp sms göndermek için turkcell ya da telsim gibi hizmet sağlayıcı bir firma ile anlaşıp kontor almanız gerekiyor. Maalesef internet üzerinden de olsa sms yollama olayı beleşe olmuyor:) Kontor almak için başvurduğunuzda size bir kullanıcı adı ile şifre verecekler; siz de kod içerisinde bulunan ilgili kısma(username ve password) bu bilgileri yazacaksınız.

yalnız, belirtmekte fayda var: yukarıda vermiş olduğum xml yapısı hizmet aldığınız firmaya göre değişkenlik gösterir...

kolay gelsin...
Güçlü olan haklı değil, haklı olan güçlüdür!
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

yardımlarınız için teşekkürler, biotekno.biz ile bağlantıya geçtim ve bu konuda yardımcı oluyorlar. delphi 7 kullanıyorum.
kolay gelsin
saygılarımla
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

merhaba,
bu xml kodlarını temin eden firma ile bağlantıya geçtiğimi söylemiştim.
ben bi kullanıcı adı falan satın aldım. sizin yazdığınız kodların onlara ait olduğunu doğruladılar. yalnız program yine aynı hatayı veriyor.

Kod: Tümünü seç

procedure TForm1.Button1Click(Sender: TObject);
 Var aStream: TStringStream;
              Params: TStringList;
              str:String;
begin
     aStream := TSTringStream.Create('');
     Params := TStringList.create;
    idHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
     try
        with idHTTP1 do begin
          try
             str:='';
             str:='<?xml version="1.0" encoding="iso-8859-9" ?>';
             str:=str+'<message-context type="smmgsd" >';
             str:=str+'<username>';
             str:=str+'burayakullanıcı adımızı yazdım';
             str:=str+'</username>';
             str:=str+'<password>';
             str:=str+'buraya şifreyi yazdım';
             str:=str+'</password>';
             str:=str+'<outbox-name>';
             str:=str+'buranın ne olduğunu hala anlamadım.';
             str:=str+'</outbox-name>';
             str:=str+'<reference>';
             //str:=str+'0';
             str:=str+'</reference>';
             str:=str+'<start-date>';
             str:=str+'</start-date>';
             str:=str+'<expire-date>';
             //str:=str+'m3';
             str:=str+'</expire-date>';
             str:=str+'<message-type>';
             str:=str+'0';
             str:=str+'</message-type>';
             //str:=str+'<message-header>';
             //str:=str+'</message-header>';
             str:=str+'<text>';
             str:=str+'bu bir denemedir';
             str:=str+'</text>';
             str:=str+'<gsmnos>';
             str:=str+'905434865311';
             str:=str+'</gsmnos>';
             str:=str+'</message-context>';
             params.text:=str;
             idHTTP1.Post('http://www.biotekno.biz:8080/SMS-Web/xmlsms',Params,aStream);
             memo1.Text:= astream.DataString;
             memo1.Lines.Add(idHTTP1.ResponseText);
          except
             on E: Exception do
                showmessage('Error encountered during POST: ' + E.Message);
          end;
        end;
     except
     end;
end;
bu program çalıştığı zaman 90 XML Parser Hatasi : The value following "version" in the XML declaration must be a quoted string.
HTTP/1.1 200 OK

diye bir hata veriyor.

versiyon yazılan yerdeki " işareti mi olayı bozuyor acaba?
bu arada DELPHİ 7 kullanıyorum.
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

Programinız hata veriyor çünkü aşağıda verdiğiniz kodda, xml içerisinde outbox-name kısmını boş bırakıyorsunuz. Outbox-name dediğimiz şey, mesaj gittiğinde, mesajın altında gönderenin kim olduğudur. Yaptığınız sözleşmede, bir outboxname belirlemişsinizdir. belirlemediyseniz, bioteknonun web sitesinden, hesap bilgilerinizi kullanarak hesabınıza girin ve oredan mesaj başlığı tanımlayın. onaylandıktan sonra da programınızda kullanın...bu alanı doldurmak zorundasınız. boş bırakırsanız, yazdığınız kod hata verecektir...

Kod: Tümünü seç

str:=str+'<outbox-name>'
str:=str+'buranın ne olduğunu hala anlamadım.'; 
str:=str+'</outbox-name>'; 
Güçlü olan haklı değil, haklı olan güçlüdür!
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

dediğin gibi outboxname'i de temin ettim ve koda ekledim. ama burdaki hata çok daha farklı bişey.
xml versiyonu quoted string olmalıdır. yani birinci satırdaki xml version bilgisi yazılışında bi problem var.

Kod: Tümünü seç

90 XML Parser Hatasi : The value following "version" in the XML declaration must be a quoted string.
HTTP/1.1 200 OK
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

Kod: Tümünü seç


str:='<?xml version="1.0" encoding="iso-8859-9" ?>';

ben bu satırı kullanıyorum ve programım çalışıyor. zaten bu satır bioteknonun vermiş olduğu xml in bir kısmı. eğer sorun yaşamaya devam ederseniz, bioteknoyu arayıp yetkili birisi ile görüşün. mesela zuhal Hnm...
Güçlü olan haklı değil, haklı olan güçlüdür!
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

Kod: Tümünü seç


str:='<?xml version="1.0" encoding="iso-8859-9" ?>';

ben bu satırı kullanıyorum ve programım çalışıyor. zaten bu satır bioteknonun vermiş olduğu xml in bir kısmı. eğer sorun yaşamaya devam ederseniz, bioteknoyu arayıp yetkili birisi ile görüşün. mesela zuhal Hnm...
Güçlü olan haklı değil, haklı olan güçlüdür!
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

sayın @cinanka, bu idHTTP1 in propertiesinde herhangi bir değişiklik falan yaptınız mı?
yani ufacık kod. sizin yazdığınız aynı kodu yazdım. ama hiç beklemeden buton1e basılınca hemen bu hatayı veriyor. illa ki basit bi ayarsızlık var bence, ama nerde?
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

ya ben hala aynı soruda takılı kaldım. bi cevap yazayım da konu biraz üst sıralara taşınsın dedim. arada kayboldu gitti. :roll:
Kullanıcı avatarı
CinAnka
Üye
Mesajlar: 84
Kayıt: 03 Nis 2006 11:27
Konum: İstanbul

Mesaj gönderen CinAnka »

@nikrokanat;

yazdığım kodu sizin için gözden geçirdim, ama değişik bir şey göremedim. idhttp1 bileşenine herhengi bir özellik belirtmedim. gerçekten çok ilginç yaa... bence hata farklı bir kısımdan kaynaklanıyor. projenizin o kısmını bana yollarsanız inceleyip daha kesin bir yanıt verebilirim...

anka_1981@hotmail.com
Güçlü olan haklı değil, haklı olan güçlüdür!
Kullanıcı avatarı
nitro
Üye
Mesajlar: 1112
Kayıt: 23 Ağu 2004 01:18
Konum: Çanakkale
İletişim:

Mesaj gönderen nitro »

projecti gönderdim incelerseniz sevinirim.
Cevapla