2011-09-21 25 views
7

Estoy trabajando con la API en www.twilio.com y proporciona ejemplos en php y ruby. Estoy trabajando en un sitio para enviar mensajes de texto a través de sus api eso codificados en ASP.NET MVC 3, ya través de mi conocimiento limitado del objeto WebRequest, traducido esto:ASP.NET Equivalente a este comando cURL

curl -X POST 'https://api.twilio.com/2010-04-01/Accounts/AC4840da0d7************f98b20b084/SMS/Messages.xml' \ 
-d 'From=%2B14155992671' \ 
-u AC4840da0d7************f98b20b084:f7fc2**************75342 

en esto:

var request = 
WebRequest.Create(MessageApiString + "?From=+14*********1&To=" + Phone + "&Body=" + smsCampaign.Message); 

var user = "AC4840da0d7************f98b20b084"; 
var pass = "f7fc2**************75342"; 

string credentials = String.Format("{0}:{1}", user, pass); 
request.Headers.Add("Authorization", credentials); 

var result = request.GetResponse(); 

pero no autentica, obtengo un 401 de su API. ¿Cuál es el comando C# equivalente al cURL -u?

Actualizar

 var request = 
      WebRequest.Create(MessageApiString + "?From=+14155992671&To=" + Phone + "&Body=" + smsCampaign.Message); 

     var cc = new CredentialCache(); 

     cc.Add(new Uri(MessageApiString), "NTLM", new NetworkCredential("AC4840da0d7************f98b20b084", "f7fc2**************75342")); 

     request.Credentials = cc; 

     request.Method = "POST"; 

     var result = request.GetResponse(); 

sigue recibiendo 401. ¿Alguna idea?

Actualización 2

Muy bien, gracias a las respuestas a continuación que era capaz de conseguir a través de la API, pero ahora estoy un 400 Bad Request. ¿Existe alguna manera más clara de construir una cadena de consulta para pasar estos datos? Los tres campos son From, To y Body.

+1

¿Alguna vez esto se revolvió? Quiero hacerlo de la misma manera –

+0

¡Déjeme saber qué hice y me pondré en contacto con usted! – Gallen

+0

podría por favor mirarme pregunta, ya que tengo el mismo problema http://stackoverflow.com/questions/23394895/send-message-using-a-webrequest-and-twilio –

Respuesta

6

intente incluir

request.Method = "POST"; 

y

request.Credentials = new NetworkCredential("username", "password"); 
+0

esto funcionó, gracias! – Gallen