c# - ASP.NET 等效于此 cURL 命令

标签 c# asp.net curl

我正在使用 Twilio API,它提供了 PHP 和 Ruby 示例。我在一个网站上工作,通过在 ASP.NET MVC 3 中编码的 API 发送文本消息,并利用我对 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();

但这不是身份验证,我从他们的 API 收到 401。与 cURL -u 命令等效的 C# 是什么?

更新

        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。有没有一种更简洁的方法来构建查询字符串来传递这些数据?这三个字段是 FromToBody

最佳答案

尝试包括

 request.Method = "POST";

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

关于c# - ASP.NET 等效于此 cURL 命令,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7507612/

相关文章:

c# - Unity2D小行星风格游戏

c# - 在运行时从以编程方式创建的 UserControl 中检索 XAML

javascript - 通过rowindex查找一行,然后在jquery中查找特定的td

c# - FindControl() 始终从 DataList 文本框返回 null

php - 带有匿名函数和闭包的 cURL WRITEFUNCTION 回调

php - Klarna 结帐返回 http_status_code 500 Internal Server Error 作为响应

php - 使用 PHP Curl 登录到远程 SSL 站点失败

c# - 将变量添加到 HTML.BeginForm 模型中

asp.net - 跟踪构建时的间歇性 'Object reference not set to an instance of an object.' 错误

c# - 在 LINQ 中连接 2 个具有不同长度的列表