我成功地使用Postman做了一个验证的帖子。但是,我似乎不能让它从C#工作,并得到一个401错误。密码和用户名的验证与在Postman中一样。我该怎么做呢?
下面是我的代码:
var url = AppConstants.ApiLoginUrl;
var uriRequest = new Uri(url);
string httpResponseBody;
using (var httpClient = new Windows.Web.Http.HttpClient())
{
var content = new HttpStringContent(string.Format("username={0}&password={1}", email, password), Windows.Storage.Streams.UnicodeEncoding.Utf8, "application/x-www-form-urlencoded");
try
{
var httpResponse = await httpClient.PostAsync(uriRequest, content);
...
}
}
以下是Postman中的页眉和正文设置。
现在使用以下代码作为content参数:
var content = new HttpFormUrlEncodedContent(new[]
{
new KeyValuePair<string, string>("username", email),
new KeyValuePair<string, string>("password", password)
});
仔细一看,似乎 Postman 和代码请求的用户名都是用Fiddler编码的。所以,我关于使用编码用户名的理论是不太正确的。这里是Fiddler请求的快照......这是可能的吗?
Postman 信头:
程式码信头:
Raw View Postman * 显示编码的用户名字段:
指令集
原始视图代码:
4条答案
按热度按时间o0lyfsai1#
我的理解是,对于UWP应用程序,推荐使用Windows.Web.Http.HttpClient()来实现这一点,另外还要确保您的URL没有拼写错误。:)
icnyk63a2#
请尝试将内容更改为以下内容
6uxekuva3#
我使用这个函数来发送带参数的POST请求,其中
Dictionary<string, string> data
是Web服务所期望的键/值。jqjz2hbq4#
我遇到了同样的问题,并通过从HttpClient发布到的URL中删除尾随的“/”来修复它。