Konuyu Oyla:
  • Derecelendirme: 0/5 - 0 oy
  • 1
  • 2
  • 3
  • 4
  • 5
NetGsm SMS Gönderme
#1
Merhabalar, 
NETGSM'den sms hizmeti almaktayım ve verdikleri api kodlarından XMLPOST'u kullanıyorum. sms göndermede herhangi bir sorunum yok, tek sorunum Türkçe karakterin gitmemesi, ı harfi i harfine, ş harfi s harfine dönüyor. Netgsm ile görüştüğümde ve onların yönetim panelinden baktığımda sonuç raporunda Türkçe gönderildiğini algılıyor fakat gelen sms öyle değil. Api Kodları aşağıdaki gibi:

Yardımlarınız için şimdiden teşekkür ederim.

XML Başlangıcı bu şekilde :

xml := '<?xml version=''1.0'' encoding=''iso-8859-9''?><mainbody><header><company dil=''TR''>NETGSM</company>' 

fonksiyon kodu :
function XMLPOST(url, postdata: String): String; // NetGsm sms gönderme
var
  GonderilecekVeri: TStrings;
  DonecekSonuc: TStringStream;
  XmlString, aa: string;
  IdHTTP1: TIdHTTP;
begin
  try
    try
      try
        GonderilecekVeri := TStringList.Create;
        GonderilecekVeri.Text := postdata;
        XmlString := '';
        DonecekSonuc := TStringStream.Create('');
        IdHTTP1 := TIdHTTP.Create(nil);
        IdHTTP1.HTTPOptions := [];
        IdHTTP1.ReadTimeout := 30000;
        IdHTTP1.Disconnect;

        // Bu kodları eklediğimde de durum aynı 
{
IdHTTP1.Request.ContentType := 'text/xml';
IdHTTP1.Request.AcceptEncoding := 'iso-8859-9';
IdHTTP1.Request.ContentEncoding := 'iso-8859-9';
IdHTTP1.Request.AcceptLanguage:='tr';
IdHTTP1.Request.ContentLanguage:='tr';
 IdHTTP1.Request.AcceptCharSet:='iso-8859-9';
 IdHTTP1.Request.CharSet:='iso-8859-9';
}


        IdHTTP1.Post(url, GonderilecekVeri, DonecekSonuc);
        IdHTTP1.Disconnect;
        XmlString := DonecekSonuc.DataString;
        result := XmlString;
      except
        on e: exception do
        begin
          // mesajpost('logyaz','xmlpost hata '+e.Message);
        end;
      end;
    finally
      begin
        DonecekSonuc.Free;
        GonderilecekVeri.Free;
        IdHTTP1.Disconnect;
        FreeAndNil(IdHTTP1);
      end;
    end;
  except
  end;
end;
Cevapla
#2
(13-01-2020, Saat: 11:28)smyrna231802 Adlı Kullanıcıdan Alıntı: Merhabalar, 
NETGSM'den sms hizmeti almaktayım ve verdikleri api kodlarından XMLPOST'u kullanıyorum. sms göndermede herhangi bir sorunum yok, tek sorunum Türkçe karakterin gitmemesi, ı harfi i harfine, ş harfi s harfine dönüyor. Netgsm ile görüştüğümde ve onların yönetim panelinden baktığımda sonuç raporunda Türkçe gönderildiğini algılıyor fakat gelen sms öyle değil. Api Kodları aşağıdaki gibi:

Yardımlarınız için şimdiden teşekkür ederim.

XML Başlangıcı bu şekilde :

xml := '<?xml version=''1.0'' encoding=''iso-8859-9''?><mainbody><header><company dil=''TR''>NETGSM</company>' 

fonksiyon kodu :
function XMLPOST(url, postdata: String): String; // NetGsm sms gönderme
var
  GonderilecekVeri: TStrings;
  DonecekSonuc: TStringStream;
  XmlString, aa: string;
  IdHTTP1: TIdHTTP;
begin
  try
    try
      try
        GonderilecekVeri := TStringList.Create;
        GonderilecekVeri.Text := postdata;
        XmlString := '';
        DonecekSonuc := TStringStream.Create('');
        IdHTTP1 := TIdHTTP.Create(nil);
        IdHTTP1.HTTPOptions := [];
        IdHTTP1.ReadTimeout := 30000;
        IdHTTP1.Disconnect;

        // Bu kodları eklediğimde de durum aynı 
{
IdHTTP1.Request.ContentType := 'text/xml';
IdHTTP1.Request.AcceptEncoding := 'iso-8859-9';
IdHTTP1.Request.ContentEncoding := 'iso-8859-9';
IdHTTP1.Request.AcceptLanguage:='tr';
IdHTTP1.Request.ContentLanguage:='tr';
 IdHTTP1.Request.AcceptCharSet:='iso-8859-9';
 IdHTTP1.Request.CharSet:='iso-8859-9';
}


        IdHTTP1.Post(url, GonderilecekVeri, DonecekSonuc);
        IdHTTP1.Disconnect;
        XmlString := DonecekSonuc.DataString;
        result := XmlString;
      except
        on e: exception do
        begin
          // mesajpost('logyaz','xmlpost hata '+e.Message);
        end;
      end;
    finally
      begin
        DonecekSonuc.Free;
        GonderilecekVeri.Free;
        IdHTTP1.Disconnect;
        FreeAndNil(IdHTTP1);
      end;
    end;
  except
  end;
end;

Merhabalar,

Firmanın döküman bilgileri içerisinde şu şekilde bir bilgi mevcut.

msg -> Mesaj metnidir. Tarifenizdeki maksimum karakterden uzun olmamalıdır.
           Standart maksimum karakter 917 dur. XML Parse işlemlerinde Türkçe
           karakterler ve özel işaretlerin sorun yaratmamasi için,
           mesaj metni <![CDATA[Mesaj metni bu alanda olacak]] > taglari içinde yer almalıdır.[/ars]


   
xml='<?xml version="1.0" encoding="UTF-8"?>
   <mainbody>
  <header>
  <company dil="TR">Netgsm</company>
  <usercode>KullaniciAdi</usercode>
  <password>Sifre</password>
  <type>n:n</type>
  <msgheader>Baslik</msgheader>
  </header>
  <body>
  <mp><msg><![CDATA[Mesaj1]]></msg><no>905551234567</no></mp>
  <mp><msg><![CDATA[Mesaj2]]></msg><no>905551234568</no></mp>
  </body>
  </mainbody>';

Umarım faydalı olur.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#3
Metot olarak "sms_gonder_1n" (xml'i kendiniz oluşturuyorsanız bu isimde ana düğümde) isimli metodu kullanın. Ayrıca post ettiğiniz bu xml'in utf8 olmasına da dikkat ederseniz olabilir. Bir zamanlar bu biçimde Türkçe karakter dönüşmeden ve problem olmadan sms atabilmiştim sanırım.
Cevapla
#4
(13-01-2020, Saat: 12:41)hi_selamlar Adlı Kullanıcıdan Alıntı:
(13-01-2020, Saat: 11:28)smyrna231802 Adlı Kullanıcıdan Alıntı: Merhabalar, 
NETGSM'den sms hizmeti almaktayım ve verdikleri api kodlarından XMLPOST'u kullanıyorum. sms göndermede herhangi bir sorunum yok, tek sorunum Türkçe karakterin gitmemesi, ı harfi i harfine, ş harfi s harfine dönüyor. Netgsm ile görüştüğümde ve onların yönetim panelinden baktığımda sonuç raporunda Türkçe gönderildiğini algılıyor fakat gelen sms öyle değil. Api Kodları aşağıdaki gibi:

Yardımlarınız için şimdiden teşekkür ederim.

XML Başlangıcı bu şekilde :

xml := '<?xml version=''1.0'' encoding=''iso-8859-9''?><mainbody><header><company dil=''TR''>NETGSM</company>' 

fonksiyon kodu :
function XMLPOST(url, postdata: String): String; // NetGsm sms gönderme
var
  GonderilecekVeri: TStrings;
  DonecekSonuc: TStringStream;
  XmlString, aa: string;
  IdHTTP1: TIdHTTP;
begin
  try
    try
      try
        GonderilecekVeri := TStringList.Create;
        GonderilecekVeri.Text := postdata;
        XmlString := '';
        DonecekSonuc := TStringStream.Create('');
        IdHTTP1 := TIdHTTP.Create(nil);
        IdHTTP1.HTTPOptions := [];
        IdHTTP1.ReadTimeout := 30000;
        IdHTTP1.Disconnect;

        // Bu kodları eklediğimde de durum aynı 
{
IdHTTP1.Request.ContentType := 'text/xml';
IdHTTP1.Request.AcceptEncoding := 'iso-8859-9';
IdHTTP1.Request.ContentEncoding := 'iso-8859-9';
IdHTTP1.Request.AcceptLanguage:='tr';
IdHTTP1.Request.ContentLanguage:='tr';
 IdHTTP1.Request.AcceptCharSet:='iso-8859-9';
 IdHTTP1.Request.CharSet:='iso-8859-9';
}


        IdHTTP1.Post(url, GonderilecekVeri, DonecekSonuc);
        IdHTTP1.Disconnect;
        XmlString := DonecekSonuc.DataString;
        result := XmlString;
      except
        on e: exception do
        begin
          // mesajpost('logyaz','xmlpost hata '+e.Message);
        end;
      end;
    finally
      begin
        DonecekSonuc.Free;
        GonderilecekVeri.Free;
        IdHTTP1.Disconnect;
        FreeAndNil(IdHTTP1);
      end;
    end;
  except
  end;
end;

Merhabalar,

Firmanın döküman bilgileri içerisinde şu şekilde bir bilgi mevcut.

msg -> Mesaj metnidir. Tarifenizdeki maksimum karakterden uzun olmamalıdır.
           Standart maksimum karakter 917 dur. XML Parse işlemlerinde Türkçe
           karakterler ve özel işaretlerin sorun yaratmamasi için,
           mesaj metni <![CDATA[Mesaj metni bu alanda olacak]] > taglari içinde yer almalıdır.[/ars]


   
xml='<?xml version="1.0" encoding="UTF-8"?>
   <mainbody>
  <header>
  <company dil="TR">Netgsm</company>
  <usercode>KullaniciAdi</usercode>
  <password>Sifre</password>
  <type>n:n</type>
  <msgheader>Baslik</msgheader>
  </header>
  <body>
  <mp><msg><![CDATA[Mesaj1]]></msg><no>905551234567</no></mp>
  <mp><msg><![CDATA[Mesaj2]]></msg><no>905551234568</no></mp>
  </body>
  </mainbody>';

Umarım faydalı olur.

Kolay gelsin.

xml bilgisini şu şekilde yolluyorum :
xml := '<?xml version="1.0" encoding="UTF-8"?>' +
                '<mainbody><header><company dil="TR">NETGSM</company>' +
                '<usercode>' + kullaniciadi
                + '</usercode>' + '<password>' + parola + '</password>' +
                '<startdate></startdate>' + '<stopdate></stopdate>' +
                '<type>n:n</type>' + '<msgheader>' + baslik + '</msgheader>' + '</header>' + '<body>'
                + '<mp><msg><![CDATA[' + mesaj +']]></msg><no>' + telefon +
                '</no></mp>' + '</body>' + '</mainbody>';

              donxml := '';
              donxml := XMLPOST
                ('http://api.netgsm.com.tr/xmlbulkhttppost.asp', xml);
Cevapla
#5
(13-01-2020, Saat: 11:28)smyrna231802 Adlı Kullanıcıdan Alıntı: Merhabalar, 
NETGSM'den sms hizmeti almaktayım ve verdikleri api kodlarından XMLPOST'u kullanıyorum. sms göndermede herhangi bir sorunum yok, tek sorunum Türkçe karakterin gitmemesi, ı harfi i harfine, ş harfi s harfine dönüyor. Netgsm ile görüştüğümde ve onların yönetim panelinden baktığımda sonuç raporunda Türkçe gönderildiğini algılıyor fakat gelen sms öyle değil. Api Kodları aşağıdaki gibi:

Yardımlarınız için şimdiden teşekkür ederim.

XML Başlangıcı bu şekilde :

xml := '<?xml version=''1.0'' encoding=''iso-8859-9''?><mainbody><header><company dil=''TR''>NETGSM</company>' 

fonksiyon kodu :
function XMLPOST(url, postdata: String): String; // NetGsm sms gönderme
var
  GonderilecekVeri: TStrings;
  DonecekSonuc: TStringStream;
  XmlString, aa: string;
  IdHTTP1: TIdHTTP;
begin
  try
    try
      try
        GonderilecekVeri := TStringList.Create;
        GonderilecekVeri.Text := postdata;
        XmlString := '';
        DonecekSonuc := TStringStream.Create('');
        IdHTTP1 := TIdHTTP.Create(nil);
        IdHTTP1.HTTPOptions := [];
        IdHTTP1.ReadTimeout := 30000;
        IdHTTP1.Disconnect;

        // Bu kodları eklediğimde de durum aynı 
{
IdHTTP1.Request.ContentType := 'text/xml';
IdHTTP1.Request.AcceptEncoding := 'iso-8859-9';
IdHTTP1.Request.ContentEncoding := 'iso-8859-9';
IdHTTP1.Request.AcceptLanguage:='tr';
IdHTTP1.Request.ContentLanguage:='tr';
 IdHTTP1.Request.AcceptCharSet:='iso-8859-9';
 IdHTTP1.Request.CharSet:='iso-8859-9';
}


        IdHTTP1.Post(url, GonderilecekVeri, DonecekSonuc);
        IdHTTP1.Disconnect;
        XmlString := DonecekSonuc.DataString;
        result := XmlString;
      except
        on e: exception do
        begin
          // mesajpost('logyaz','xmlpost hata '+e.Message);
        end;
      end;
    finally
      begin
        DonecekSonuc.Free;
        GonderilecekVeri.Free;
        IdHTTP1.Disconnect;
        FreeAndNil(IdHTTP1);
      end;
    end;
  except
  end;
end;

Merhabalar,

XML oluşturma yapınızı aşağıdaki gibi değiştirip POST edip denermisiniz lütfen.



var
ss : TStringStream;
begin
SS := TStringStream.Create('xml yapısı buraya gelecek', TEncoding.UTF8);
 try

   IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
    IdHTTP1.Request.Charset := 'utf-8';
   IdHTTP1.Post(url, ss, DonecekDeger;

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#6
(13-01-2020, Saat: 17:16)hi_selamlar Adlı Kullanıcıdan Alıntı:
(13-01-2020, Saat: 11:28)smyrna231802 Adlı Kullanıcıdan Alıntı: Merhabalar, 
NETGSM'den sms hizmeti almaktayım ve verdikleri api kodlarından XMLPOST'u kullanıyorum. sms göndermede herhangi bir sorunum yok, tek sorunum Türkçe karakterin gitmemesi, ı harfi i harfine, ş harfi s harfine dönüyor. Netgsm ile görüştüğümde ve onların yönetim panelinden baktığımda sonuç raporunda Türkçe gönderildiğini algılıyor fakat gelen sms öyle değil. Api Kodları aşağıdaki gibi:

Yardımlarınız için şimdiden teşekkür ederim.

XML Başlangıcı bu şekilde :

xml := '<?xml version=''1.0'' encoding=''iso-8859-9''?><mainbody><header><company dil=''TR''>NETGSM</company>' 

fonksiyon kodu :
function XMLPOST(url, postdata: String): String; // NetGsm sms gönderme
var
  GonderilecekVeri: TStrings;
  DonecekSonuc: TStringStream;
  XmlString, aa: string;
  IdHTTP1: TIdHTTP;
begin
  try
    try
      try
        GonderilecekVeri := TStringList.Create;
        GonderilecekVeri.Text := postdata;
        XmlString := '';
        DonecekSonuc := TStringStream.Create('');
        IdHTTP1 := TIdHTTP.Create(nil);
        IdHTTP1.HTTPOptions := [];
        IdHTTP1.ReadTimeout := 30000;
        IdHTTP1.Disconnect;

        // Bu kodları eklediğimde de durum aynı 
{
IdHTTP1.Request.ContentType := 'text/xml';
IdHTTP1.Request.AcceptEncoding := 'iso-8859-9';
IdHTTP1.Request.ContentEncoding := 'iso-8859-9';
IdHTTP1.Request.AcceptLanguage:='tr';
IdHTTP1.Request.ContentLanguage:='tr';
 IdHTTP1.Request.AcceptCharSet:='iso-8859-9';
 IdHTTP1.Request.CharSet:='iso-8859-9';
}


        IdHTTP1.Post(url, GonderilecekVeri, DonecekSonuc);
        IdHTTP1.Disconnect;
        XmlString := DonecekSonuc.DataString;
        result := XmlString;
      except
        on e: exception do
        begin
          // mesajpost('logyaz','xmlpost hata '+e.Message);
        end;
      end;
    finally
      begin
        DonecekSonuc.Free;
        GonderilecekVeri.Free;
        IdHTTP1.Disconnect;
        FreeAndNil(IdHTTP1);
      end;
    end;
  except
  end;
end;

Merhabalar,

XML oluşturma yapınızı aşağıdaki gibi değiştirip POST edip denermisiniz lütfen.

var
ss : TStringStream;
begin
SS := TStringStream.Create('xml yapısı buraya gelecek', TEncoding.UTF8);
 try

   IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
    IdHTTP1.Request.Charset := 'utf-8';
   IdHTTP1.Post(url, ss, DonecekDeger;

Kolay gelsin.

Hepinize yardımlarınız için teşekkür ederim. @hi_selamlar verdiğiniz düzenleme ile sorunum çözüldü. 

fonksiyonun tamamını buraya yazıyorum. İyi günler dilerim.

function XMLPOST(url, postdata: WideString): String;
var
 DonecekSonuc: TStringStream;
 XmlString, aa: string;
 IdHTTP1: TIdHTTP;
 ss: TStringStream;
begin
 try
   try
     try
       ss := TStringStream.Create(postdata, TEncoding.UTF8);
       XmlString := '';
       DonecekSonuc := TStringStream.Create('');
       IdHTTP1 := TIdHTTP.Create(nil);
       IdHTTP1.HTTPOptions := [];
       IdHTTP1.ReadTimeout := 30000;
       IdHTTP1.Disconnect;
       IdHTTP1.Request.Accept := '*/*';
       IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
       IdHTTP1.Post(url, ss, DonecekSonuc);
       IdHTTP1.Disconnect;
       XmlString := DonecekSonuc.DataString;
       result := XmlString;
     except
       on e: exception do
       begin

       end;
     end;
   finally
     begin
       DonecekSonuc.Free;
       ss.Free;
       IdHTTP1.Disconnect;
       FreeAndNil(IdHTTP1);
     end;
   end;
 except
 end;
end;
Cevapla
#7
(14-01-2020, Saat: 09:09)smyrna231802 Adlı Kullanıcıdan Alıntı:
(13-01-2020, Saat: 17:16)hi_selamlar Adlı Kullanıcıdan Alıntı: Merhabalar,

XML oluşturma yapınızı aşağıdaki gibi değiştirip POST edip denermisiniz lütfen.



var
ss : TStringStream;
begin
SS := TStringStream.Create('xml yapısı buraya gelecek', TEncoding.UTF8);
 try

   IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
    IdHTTP1.Request.Charset := 'utf-8';
   IdHTTP1.Post(url, ss, DonecekDeger;

Kolay gelsin.

Hepinize yardımlarınız için teşekkür ederim. @hi_selamlar verdiğiniz düzenleme ile sorunum çözüldü. 

fonksiyonun tamamını buraya yazıyorum. İyi günler dilerim.
function XMLPOST(url, postdata: WideString): String;
var
 DonecekSonuc: TStringStream;
 XmlString, aa: string;
 IdHTTP1: TIdHTTP;
 ss: TStringStream;
begin
 try
   try
     try
       ss := TStringStream.Create(postdata, TEncoding.UTF8);
       XmlString := '';
       DonecekSonuc := TStringStream.Create('');
       IdHTTP1 := TIdHTTP.Create(nil);
       IdHTTP1.HTTPOptions := [];
       IdHTTP1.ReadTimeout := 30000;
       IdHTTP1.Disconnect;
       IdHTTP1.Request.Accept := '*/*';
       IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
       IdHTTP1.Post(url, ss, DonecekSonuc);
       IdHTTP1.Disconnect;
       XmlString := DonecekSonuc.DataString;
       result := XmlString;
     except
       on e: exception do
       begin

       end;
     end;
   finally
     begin
       DonecekSonuc.Free;
       ss.Free;
       IdHTTP1.Disconnect;
       FreeAndNil(IdHTTP1);
     end;
   end;
 except
 end;
end;

Merhabalar,

Sorununuz çözümlendi ise ne mutlu bizlere. Sevindim.

Kolay gelsin.
Amaç, bilginin de/aklın da zekat'ını vermek.
Cevapla
#8
Merhaba,

Son halini paylaşabilirmisiniz acaba ?

teşekkürler
Cevapla
#9
(14-01-2020, Saat: 09:09)smyrna231802 Adlı Kullanıcıdan Alıntı:
(13-01-2020, Saat: 17:16)hi_selamlar Adlı Kullanıcıdan Alıntı: Merhabalar,

XML oluşturma yapınızı aşağıdaki gibi değiştirip POST edip denermisiniz lütfen.



var
ss : TStringStream;
begin
SS := TStringStream.Create('xml yapısı buraya gelecek', TEncoding.UTF8);
 try

   IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
    IdHTTP1.Request.Charset := 'utf-8';
   IdHTTP1.Post(url, ss, DonecekDeger;

Kolay gelsin.

Hepinize yardımlarınız için teşekkür ederim. @hi_selamlar verdiğiniz düzenleme ile sorunum çözüldü. 

fonksiyonun tamamını buraya yazıyorum. İyi günler dilerim.
function XMLPOST(url, postdata: WideString): String;
var
 DonecekSonuc: TStringStream;
 XmlString, aa: string;
 IdHTTP1: TIdHTTP;
 ss: TStringStream;
begin
 try
   try
     try
       ss := TStringStream.Create(postdata, TEncoding.UTF8);
       XmlString := '';
       DonecekSonuc := TStringStream.Create('');
       IdHTTP1 := TIdHTTP.Create(nil);
       IdHTTP1.HTTPOptions := [];
       IdHTTP1.ReadTimeout := 30000;
       IdHTTP1.Disconnect;
       IdHTTP1.Request.Accept := '*/*';
       IdHTTP1.Request.ContentType := 'application/x-www-form-urlencoded';
       IdHTTP1.Post(url, ss, DonecekSonuc);
       IdHTTP1.Disconnect;
       XmlString := DonecekSonuc.DataString;
       result := XmlString;
     except
       on e: exception do
       begin

       end;
     end;
   finally
     begin
       DonecekSonuc.Free;
       ss.Free;
       IdHTTP1.Disconnect;
       FreeAndNil(IdHTTP1);
     end;
   end;
 except
 end;
end;

(18-03-2020, Saat: 16:28)erdogan Adlı Kullanıcıdan Alıntı: Merhaba,

Son halini paylaşabilirmisiniz acaba ?

teşekkürler

Burada yazılmış zaten!
kisisel_logo_dark.png
WWW
Cevapla
#10
denedim ama bende yine aynı 10.3 kullanıyorum Sad
Cevapla


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  RESTRequest Nesnesinde Body içinde JSON Gönderme Hk. pro_imaj 2 595 04-06-2023, Saat: 00:47
Son Yorum: pro_imaj
  WebBrowser ile Forma Veri Gönderme ve Sorgulama adnansirca 5 2.371 02-03-2023, Saat: 17:15
Son Yorum: adnansirca
  PrintDialogda Seçilen Yazıcıya Çıktı Gönderme sunbeki 3 790 03-02-2023, Saat: 15:47
Son Yorum: ahmet6513
  SMS gönderme uygulaması 7805 10 2.400 02-02-2023, Saat: 21:51
Son Yorum: 7805
Information Delphi Mail Gönderme İçin Alternatif Halil Han BADEM 5 5.859 28-06-2022, Saat: 06:57
Son Yorum: erkutolga



Konuyu Okuyanlar: 1 Ziyaretçi