如何在WebClient中指定邮件正文?

时间:2014-11-12 18:04:01

标签: c# azure authorization webclient token

在控制台中,我跟进了我正在制作的网站的电话,我可以看到地址( some.site.com/gettoken ),邮件标题和FF的内容调用邮件正文。在后者中,我可以看到我在网站上输入的凭据。

所以,我有了URL和邮件正文。然后,我尝试使用C#为我的Azure服务层实现这样的行为。

String url = @"https://some.site.com/gettoken";
String credentials = "username=super&password=secret";
using (WebClient client = new WebClient())
{
  String output = client.UploadString(url, credentials);
  result = output;
}

然而,我收到错误400 - 结果不好。我错过了什么?

我用谷歌搜索了some stuff,但唯一远程相关的点击是谈论我用过的上传方法。我是完全吠叫错误的树还是只是遗漏了一些小东西? Some people似乎可以让它发挥作用,但它们并没有令人难以理解。而且我不确定它是否具有相关性。

1 个答案:

答案 0 :(得分:1)

因此,作为评论中讨论内容的摘要:您可以使用the more modern HttpClient代替。

请注意,这是System.Net.Http.HttpClient而不是Windows.Web.Http.HttpClient

示例实现可能如下所示:

public async Task<string> SendCredentials()
{
    string url = @"https://some.site.com/gettoken";
    string credentials = "username=super&password=secret";
    using(var client = new HttpClient())
    {
        var response = await client.PostAsync(url, new StringContent(credentials));
        return await response.Content.ReadAsStringAsync();
    }
}

您可能也对System.Net.Http.FormUrlEncodedContent感兴趣,它允许您传递参数及其值,因此您不必自己构建credentials值。

More information on async/await