【问题标题】:WEB API C# REPONSE HANGS (HttpWebResponse)http.GetResponse()WEB API C# 响应挂起 (HttpWebResponse)http.GetResponse()
【发布时间】:2022-02-08 23:32:16
【问题描述】:

我正在做一个 WEB API .net 4.62,它使用用户名密码和 grant_type 获取访问令牌,一旦生成,我想获取它的 access_token 值。这不会发生,但是当我将相同的代码带到 Windows 时形成应用程序我能够得到它可能有什么问题。它继续使用 (HttpWebResponse response = (HttpWebResponse)http.GetResponse())

try
            {
                string myParameters = "username=value1&password=value2&grant_type=password";
                string baseAddress = "http://localhost:50128/token";
                var http = (HttpWebRequest)WebRequest.Create(new Uri(baseAddress));
                http.Accept = "application/x-www-form-urlencoded";
                http.ContentType = "application/x-www-form-urlencoded";
                http.Method = "POST";

                string parsedContent = myParameters;
                ASCIIEncoding encoding = new ASCIIEncoding();
                Byte[] bytes = encoding.GetBytes(parsedContent);
                Stream newStream = http.GetRequestStream();
                newStream.Write(bytes, 0, bytes.Length);
                newStream.Close();
                http.ServicePoint.Expect100Continue = false;
                http.ProtocolVersion = HttpVersion.Version11;
                http.Timeout = 2000;
               using (HttpWebResponse response = (HttpWebResponse)http.GetResponse())
                {
                    var stream = response.GetResponseStream();
                    var sr = new StreamReader(stream);
                    var content = sr.ReadToEnd();
                    JObject json = JObject.Parse(content);
                    var message = json.SelectToken("access_token").ToString();
                    Console.Write(message);
                }
            }
            
            catch (Exception ex)
            {
                //Handle the exceptions that could appear
            }

【问题讨论】:

    标签: c# asp.net-mvc vb.net asp.net-web-api


    【解决方案1】:

    像这样更改 using 块,并将您的函数转换为“异步”。

    使用 (HttpWebResponse response = (HttpWebResponse)await Task.Factory.FromAsync(http.BeginGetResponse, http.EndGetResponse, null).ConfigureAwait(false))

    让我知道它是否有效。

    【讨论】:

    • 没有工作但来自同一个项目如果我添加一个 .aspx 网页并粘贴它运行的相同代码我认为问题可能是从生成令牌的控制器访问令牌公共覆盖异步任务GrantResourceOwnerCredentials(OAuthGrantResourceOwnerCredentialsContext context) { using (UserAuthentication OBJ = new UserAuthentication()) }
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-09-14
    • 2017-09-25
    • 1970-01-01
    • 2017-05-18
    • 2017-10-28
    • 1970-01-01
    相关资源
    最近更新 更多