2011-09-21 11 views
7

Sto lavorando con l'API su www.twilio.com e fornisce esempi in php e ruby. Sto lavorando su un sito per inviare messaggi di testo attraverso i loro questo è api codificati in ASP.NET MVC 3, e attraverso la mia conoscenza limitata dell'oggetto WebRequest, tradotto in questo modo:ASP.NET Equivalente a questo 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 

in questo:

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(); 

ma non si sta autenticando, sto ricevendo un 401 dalla loro API. Qual è il C# equivalente al comando cURL -u?

Aggiornamento

 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(); 

ancora ricevendo 401. Tutte le idee?

Update 2

Va bene, grazie alle risposte di seguito sono stato in grado di mettersi in contatto con l'API, ma ora sto ottenendo un 400 Bad Request. C'è un modo più semplice per costruire una stringa di query per passare questi dati? I tre campi sono From, To e Body.

+1

Questo è mai stato sovled? Voglio farlo allo stesso modo –

+0

Fammi sapere cosa ho fatto e ti ricontatterò! – Gallen

+0

potresti per favore guardarmi una domanda perché ho ricevuto lo stesso problema http://stackoverflow.com/questions/23394895/send-message-using-a-webrequest-and-twilio –

risposta

6

Prova compresi

request.Method = "POST"; 

e

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

questo ha funzionato, grazie! – Gallen