ASP.NET Эквивалент этой команды cURL - PullRequest
7 голосов
/ 22 сентября 2011

Я работаю с Twilio API, и он предоставляет примеры на PHP и Ruby.Я работаю над сайтом для отправки текстовых сообщений через API, который закодирован в ASP.NET MVC 3, и, используя мои ограниченные знания об объекте WebRequest, я смог перевести это:

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

Вэто:

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

Но это не аутентификация, я получаю 401 от их API.Что эквивалентно C # для команды cURL -u?

Обновление

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

По-прежнему получается 401. Есть идеи?

Обновление 2

Хорошо, благодаря ответам ниже, я смог дозвониться до API, но теперь я получаю 400 Bad Request.Есть ли более чистый способ создания строки запроса для передачи этих данных?Три поля: From, To и Body.

Ответы [ 2 ]

6 голосов
/ 22 сентября 2011

Попробуйте включить

 request.Method = "POST";

и

request.Credentials = new NetworkCredential("username", "password");
2 голосов
/ 22 сентября 2011

Параметр -u в Curl: , укажите имя пользователя и пароль для аутентификации на сервере.

Для C # это устанавливается с помощью свойства WebRequest.Credentials .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...