2011-09-21 11 views
7

Pracuję z api na stronie www.twilio.com i zawiera przykłady w php i ruby. Pracuję na stronie do wysyłania wiadomości tekstowych za pośrednictwem ich api ów zakodowanych w ASP.NET MVC 3, a przez moją ograniczoną wiedzę o WebRequest obiektu, przetłumaczony:ASP.NET Równoważna z tą komendą 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 

do tego:

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

ale nie jest to uwierzytelnianie, otrzymuję 401 z ich API. Co to jest odpowiednik C# do polecenia cURL -u?

Aktualizuj

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

wciąż otrzymuję 401. Jakieś pomysły?

Aktualizacja 2

porządku, dzięki odpowiedzi poniżej udało mi się dotrzeć do API, ale teraz Dostaję 400 Bad Request. Czy istnieje bardziej przejrzysty sposób na zbudowanie ciągu zapytania, aby przekazać te dane? Te trzy pola to From, To i Body.

+1

Czy kiedykolwiek doszło do sojuszu? Chcę to zrobić w ten sam sposób. –

+0

Pozwól mi dowiedzieć się, co zrobiłem, a do ciebie wrócę! – Gallen

+0

Czy mógłbyś proszę spojrzeć na mnie pytanie, ponieważ mam ten sam numer http://stackoverflow.com/questions/23394895/send-message-using-a-webrequest-and-twilio –

Odpowiedz

6

Spróbuj tym

request.Method = "POST"; 

i

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

to działało, dziękuję! – Gallen