Para quem estiver procurando uma forma de enviar SMS via aplicação, e está procurando uma empresa para o mesmo, indico a Human, pois já desenvolvi aplicações utilizando as soluções de comunicações da mesma, e tem atendido e respondido as expectativas, para acessar e buscar o contato este é o site: http://www.human.com.br/sms/index.php.
Para ajuda-los, eu criei uma classe SMS.cs, onde a mesma contém está função, que a própria Human auxilia no desenvolvimento caso precisem, a mesma fornece um manual com as explicações necessárias ao desenvolvimento da aplicação, mas para envio de uma lista por exemplo temos:
Using necessários na classe:
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using System.IO;
Função:
Using necessários na classe:
using System.Linq;
using System.Text;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Net;
using System.IO;
Função:
public string GetPage(String Lista)
{//CSV&list
String url = "http://fornecido pela Empresa Human";
//define a empresa a senha e o tipo de envio, no caso uma lista
String query = "dispatch=sendMultiple&account=empresa&code=senha&type=E&list=" + Lista;
// Declarações necessárias, Empresa HUMAN
Stream requestStream = null;
WebResponse response = null;
StreamReader reader = null;
try
{
WebRequest request = WebRequest.Create(url);
request.Method = WebRequestMethods.Http.Post;
// Neste ponto, você está setando a propriedade ContentType da página
// para urlencoded para que o comando POST seja enviado corretamente
request.ContentType = "application/x-www-form-urlencoded";
StringBuilder urlEncoded = new StringBuilder();
// Separando cada parâmetro
Char[] reserved = { '?', '=', '&' };
// alocando o bytebuffer
byte[] byteBuffer = null;
// caso a URL seja preenchida
if (query != null)
{
int i = 0, j;
// percorre cada caractere da url atraz das palavras reservadas para separação
// dos parâmetros
while (i < query.Length)
{
j = query.IndexOfAny(reserved, i);
if (j == -1)
{
urlEncoded.Append(query.Substring(i, query.Length - i));
break;
}
urlEncoded.Append(query.Substring(i, j - i));
urlEncoded.Append(query.Substring(j, 1));
i = j + 1;
}
// codificando em UTF8 (evita que sejam mostrados códigos malucos em caracteres especiais
byteBuffer = Encoding.UTF8.GetBytes(urlEncoded.ToString());
request.ContentLength = byteBuffer.Length;
requestStream = request.GetRequestStream();
requestStream.Write(byteBuffer, 0, byteBuffer.Length);
requestStream.Close();
}
else
{
request.ContentLength = 0;
}
// Dados recebidos
response = request.GetResponse();
Stream responseStream = response.GetResponseStream();
// Codifica os caracteres especiais para que possam ser exibidos corretamente
System.Text.Encoding encoding = System.Text.Encoding.Default;
// Preenche o reader
reader = new StreamReader(responseStream, encoding);
Char[] charBuffer = new Char[256];
int count = reader.Read(charBuffer, 0, charBuffer.Length);
String Dados = "";
// Lê cada byte para preencher meu string
while (count > 0)
{
Dados += new String(charBuffer, 0, count);
count = reader.Read(charBuffer, 0, charBuffer.Length);
}
return Dados;
}
catch (Exception ex)
{
//// Ocorreu algum erro
//Console.Write("Erro: " + e.Message);
return "";
throw ex;
} // END: catch
finally
{
// Fecha tudo
if (requestStream != null) requestStream.Close();
if (response != null) response.Close();
if (reader != null) reader.Close();
} // END: finally
}
Att Fernando Valota
Att Fernando Valota
Nenhum comentário:
Postar um comentário