[C#] ASP.NET Equivalente a questo comando cURL


Answers

L'opzione -u in Curl è specificare un nome utente e una password per l'autenticazione del server.

Per C # questo viene impostato utilizzando la proprietà WebRequest.Credentials .

Question

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 tramite la loro API codificata in ASP.NET MVC 3, e attraverso la mia conoscenza limitata dell'oggetto WebRequest, ho tradotto questo:

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 è l'equivalente c # del comando cURL -u ?

Aggiornare

        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 ottenendo 401. Qualche idea?

Aggiornamento 2

Bene, grazie alle risposte qui sotto sono stato in grado di raggiungere l'api, ma ora sto ricevendo una 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 .