Çok Yakında Yeni Bir Arayüzle karşınızdayız! http://yeni.delphican.com/

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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(13-01-2020, Saat: 11:28)smyrna231802 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(13-01-2020, Saat: 11:28)smyrna231802 Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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ı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.
(13-01-2020, Saat: 17:16)hi_selamlar Adlı Kullanıcıdan Alıntı: Linkleri Görebilmeniz İçin Üye Olmanız Gerekiyor. Üye Olabilmek İçin Lütfen Buraya Tıklayınız.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


Konu ile Alakalı Benzer Konular
Konular Yazar Yorumlar Okunma Son Yorum
  Datasnap büyük dosya gönderme sorunu. seci20 2 158 12-01-2020, Saat: 14:56
Son Yorum: seci20
  [ÇÖZÜLDÜ] Tablodaki alana 0 değerini default olarak gönderme wiseman 8 555 03-09-2019, Saat: 09:05
Son Yorum: wiseman
  DBGrid1 den Excel Veri Gönderme OZCANK 0 320 13-07-2019, Saat: 14:03
Son Yorum: OZCANK
  Delphi'den Python'a Parametre Gönderme Hayati 11 1.128 04-07-2019, Saat: 09:41
Son Yorum: Halil Han Badem
  Parça Parça veri gönderme onurakman 1 481 08-06-2019, Saat: 18:08
Son Yorum: masteryoda



Konuyu Okuyanlar: 1 Ziyaretçi