【发布时间】:2014-04-19 03:48:51
【问题描述】:
我正在尝试使用 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 并发送文本,否则我无法发送数据。我想知道如何以编程方式将其添加到请求中,因此我不必手动进行。我很确定这与 sn-p 的前 3 行有关,但我在网上找到的文档对我没有太大帮助。 我不能使用 RestSharp,因为 Windows 商店项目不支持它,所以我更喜欢 HttpClient 解决方案。
Plivo 使用什么“方案”?我应该如何构造 HttpCredentialsHeaderValue?第 3 行是否正确?
【问题讨论】:
-
登录时尝试查看浏览器和服务器之间的流量。你可以使用telerik.com/fiddler
-
我用 fiddler2 查看了数据包,在 Auth 标头下它说 Authorization Header 存在,但嵌入的数据无法解码。它看起来像这样:
标签: c# windows-store-apps http-authentication dotnet-httpclient plivo