gpt4 book ai didi

c# - 在对 Twilio 的 JSON 调用中获取 "A From phone number is required"

转载 作者:行者123 更新时间:2023-11-30 14:27:07 25 4
gpt4 key购买 nike

我正在尝试使用 JSON over HTTP 与 Twilio API 通信(我在 asp.net vNext 上运行 - 他们的 C# 库尚不支持 coreclr)

我有以下代码,但每次我调用 API 时都会得到相同的 400 - 请求响应错误:

{"code": 21603, "message": "A 'From' phone number is required.", "more_info": "https://www.twilio.com/docs/errors/21603", "status": 400}

我正在使用以下代码来设置请​​求并进行调用 - 身份验证成功并且出现上述错误:

var byteArray = Encoding.ASCII.GetBytes("{AccountSid}:{AuthToken}");

HttpClient client = new HttpClient();
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", Convert.ToBase64String(byteArray));

var jsonStr = JsonConvert.SerializeObject(new {
From = WebUtility.UrlEncode("+15005550003"), // A test number twilio supply
To = WebUtility.UrlEncode("{my phone number}"),
Body = WebUtility.UrlEncode("Hi there from a pure json rest client...")
});

var response = await client.PostAsync("https://api.twilio.com/2010-04-01/Accounts/{AccountSid}/SMS/Messages.json", new StringContent(jsonStr));

最佳答案

在联系了支持人员并与一位名叫 Joshua 的非常乐于助人的人打交道之后,我们已经弄明白了。

Twilio docs 中,您可以使用带有“messages.json”或“messages.xml”的 url - 我的意思是:无论您使用哪个 url,消息(请求和响应)都必须遵循该格式。

不幸的是,这不是真的——所有对 Twilio 的请求,必须是 Content-Type: application/x-www-form-urlencoded

例如To=0123456789&From=9876543210&Body=嗨

在 C# (HttpClient) 中看起来像:

_client.PostAsync(_url, new FormUrlEncodedContent(new Dictionary<string, string>(){
{ "To", "0123456789" },
{ "From", "9876543210" },
{ "Body", "Hi" } }));

关于c# - 在对 Twilio 的 JSON 调用中获取 "A From phone number is required",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33764125/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com