连接尝试失败,因为连接方在一段时间后没有正确响应,或者建立的连接失败”

问题描述 投票:0回答:1

从 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 调用应该得到执行并获取访问令牌。

wcf c#-4.0 access-token
1个回答
0
投票

原因可能是您需要将 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;
    }

© www.soinside.com 2019 - 2024. All rights reserved.