0

我正在尝试使用 Plivo 从我的 WindowsStore 应用程序中发送短信。这是几乎有效的方法:

// These first 3 lines don't do what I want
var unamepass = AuthID + ":" + AuthToken;
var auth = new HttpCredentialsHeaderValue("Basic", unamepass);
httpClient.DefaultRequestHeaders.Authorization = auth;

string textBody = "sample message";
var plivoText = new
{
    src = plivoNumber,
    dst = phoneNumber,
    text = textBody
};
string Serial = JsonConvert.SerializeObject(plivoText);
IHttpContent PlivoJsonContent = new HttpJsonContent(JsonValue.Parse(Serial));
HttpResponseMessage PlivoResponse = 
    await httpClient.PostAsync(
        new Uri("https://api.plivo.com/v1/Account/<AuthID>/Message/")
        , PlivoJsonContent);

现在,这段代码工作......技术上。我收到了 202 回复。但是,在它发送文本之前,屏幕上会弹出一个大型身份验证。在此处输入图像描述

如果我输入正确的数据,我会得到 202 并发送文本,否则我无法发送数据。我想知道如何以编程方式将其添加到请求中,因此我不必手动进行。我很确定这与代码段的前 3 行有关,但我在网上找到的文档对我没有多大帮助。我不能使用 RestSharp,因为 Windows 商店项目不支持它,所以我更喜欢 HttpClient 解决方案。

Plivo 使用什么“方案”?我应该如何构造 HttpCredentialsHeaderValue?第3行正确吗?

4

1 回答 1

0

答案非常简单。您必须将字符串转换为 base64 才能将其发送到标头。

请参阅:将 UTF-8 转换为 base64 字符串

于 2014-03-14T03:28:09.163 回答