从 WCF 服务调用 API 时出现错误:
“连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败,因为连接的主机未能响应”
WCF使用http协议,API使用https协议。 下面是代码:
var client = new HttpClient();
var data = new Dictionary<string, string>();
data["client_id"] = "XXXX";
data["client_secret"] = "XXXX";
data["grant_type"] = "XXXXX";
using (HttpContent formContent = new FormUrlEncodedContent(data))
{
using (HttpResponseMessage response = await client.PostAsync("https://api-cdt.maersk.com/oauth2/access_token", formContent).ConfigureAwait(false))
{
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
var tokenClient = JsonConvert.DeserializeObject<TokenClient>(json);
return tokenClient.access_token;
}
}
我期望 API 调用应该得到执行并获取访问令牌。
原因可能是您需要将 URL 字符串转换为 URI 对象。
Uri uri = new Uri("https://api-cdt.maersk.com/oauth2/access_token", UriKind.Absolute);
using (HttpResponseMessage response = await client.PostAsync(uri, formContent).ConfigureAwait(false))
{
response.EnsureSuccessStatusCode();
var json = await response.Content.ReadAsStringAsync().ConfigureAwait(false);
var tokenClient = JsonConvert.DeserializeObject<TokenClient>(json);
return tokenClient.access_token;
}