【发布时间】:2021-10-07 12:37:24
【问题描述】:
这很奇怪,我有 C# HttpClient PostAsync 方法,它适用于 IP 并且没有完全限定的主机名,但是它不适用于完全限定的主机名,尽管它适用于邮递员,知道问题出在哪里.
例如;如果我输入 IP:portname 或 myvdi:postname 它可以工作 但我输入 myvdi.swq.tst.local 它不起作用并抛出错误“找不到方法”
我重复邮递员没有问题,两种情况都可以在邮递员中使用。
var client = new HttpClient();
var requestData = new List<KeyValuePair<string, string>>
{
new KeyValuePair<string, string>("grant_type", "password"),
new KeyValuePair<string, string>("username", "myusername"),
new KeyValuePair<string, string>("password", "mypassword")
};
var payload = new FormUrlEncodedContent(requestData);
payload.Headers.ContentType =
new MediaTypeHeaderValue("application/x-www-form-urlencoded") { CharSet = "UTF-8" };
var response = client.PostAsync(new Uri("https://myvdi.swq.tst.local:8096/SourceCtl/source/api/token"), payload).ConfigureAwait(false).GetAwaiter().GetResult();
URL 是 windows 服务,配置了 OWIN 令牌,所以它首先调用 OWIN。
提琴手
【问题讨论】:
-
确切的例外是什么?您也可以与我们分享 StackTrace 吗?
-
dns 是否解析到相同的 ip 地址?
-
@PeterCsala 就像我说没有错误,响应说“404 Not Found”
-
404 表示 URL 错误,而不是主机。服务器收到了 HTTP 请求,但无法识别
/SourceCtl/source/api/token"。这与HttpClient无关 -
@DanielA.White 它适用于邮递员,所以是 DNS 问题吗??
标签: c# owin dotnet-httpclient