【问题标题】:Is there a way to convert this Twilio CURL to RestClient?有没有办法将此 Twilio CURL 转换为 RestClient?
【发布时间】:2021-10-06 20:25:02
【问题描述】:

我想知道如何将此 Twilio CURL 代码转换为 RestClient 我被困在 request.AddParamenter() 我不知道如何格式化它以传递 Twilio SID、令牌、发件人、收件人和正文文本消息。

curl -X POST https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json \
-data-urlencode "Body=Hi there" \
-data-urlencode "From=+15017122661" \
-data-urlencode "To=+15558675310" \
-u $TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN

到这里:

var client = new RestClient("https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/x-www-form-urlencoded");
request.AddHeader("cache-control", "no-cache");
request.AddParameter("application/x-www-form-urlencoded", "bodykey=bodyval", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);

这是我的代码,现在可以 100% 编译,在我运行代码后,我得到一个响应“完成”,没有错误消息,也没有在 twilio 仪表板上输入,它不发送文本消息,任何想法你的帮助将是非常感谢。

RestClient client = new RestClient("https://api.twilio.com/2010-04-01/Accounts/ACet53f18a4734c339488c1845e619dd9g/Messages.json"); 客户端.Timeout = -1; var request = new RestRequest(Method.POST); var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("ACet53f18a4734c339488c1845e619dd9g:daskshdsjkahkashd90ud09as8dasjkhdsa9")); request.AddHeader("授权", "基本" + base64authorization); request.AddHeader("Content-Type", "application/x-www-form-urlencoded"); request.AddParameter("Body", "Hello World"); request.AddParameter("发件人", "+15017122661"); //- 我的 Twilio 号码去了 request.AddParameter("To", "+15017122661"); IRestResponse 响应 = client.Execute(request); 字符串 ResStatus = response.ResponseStatus.ToString(); //- 成功运行后完成。

【问题讨论】:

  • 我忘了说我使用的是visual studio 2010 pro framework 4.0。
  • 你真的在使用 VS 2010 吗?!
  • 嗨,DavidG,是的,我正在使用 Visual Studio 2010 Pro,当时我的朋友教我如何创建 Windows 窗体。

标签: c# twilio-api


【解决方案1】:

您可以像这样发送 RestClient 请求。

    RestClient client = new RestClient("https://api.twilio.com/2010-04-01/Accounts/$TWILIO_ACCOUNT_SID/Messages.json");
    client.Timeout = -1;
    var request = new RestRequest(Method.POST);
    var base64authorization = Convert.ToBase64String(Encoding.ASCII.GetBytes("$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN"));
    request.AddHeader("Authorization", $"Basic {base64authorization}");
    request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
    request.AddParameter("Body", "Hi");
    request.AddParameter("From", "+15017122661");
    request.AddParameter("To", "+ 15558675310");
    IRestResponse response = client.Execute(request);

【讨论】:

  • 阿里,当我尝试你的代码时,我收到以下错误消息 Unexpected character '$' when compile on this line code request.AddHeader("Authorization", $"Basic {base64authorization}");
  • 代码“$TWILIO_ACCOUNT_SID:$TWILIO_AUTH_TOKEN”这行代码中的“$”是什么意思,我真的需要吗,只需要传递Account_SID:TOKEN就行了。
  • 在这行代码上编译时出现意外字符'$' request.AddHeader("Authorization", $"Basic {base64authorization}");字符串前面的 $ 允许字符串插值 - 这只是意味着您可以使用大括号将变量放入字符串中,但如果它不起作用,请尝试以下操作:request.AddHeader("Authorization", "Basic" + base64authorization );
  • @AlDiz 这行的意思是 Encoding.ASCII.GetBytes("HERE PUT YOUR SID FROM TWILIO:HERE PUT YOUR SECERET KEY FROM TWILIO");
  • @AlDiz 所以 $TWILIO_ACCOUNT_SID 意味着只需将包括 $ 在内的整个替换为实际的 SID。
猜你喜欢
  • 1970-01-01
  • 2022-07-06
  • 2014-12-26
  • 2020-01-24
  • 2019-07-12
  • 2021-07-21
  • 2020-01-10
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多