RestSharp 响应内容始终为 Null 但仍会执行日志

RestSharp Response Content Always Null But Still Logs With Execute

发送基本 GET 时,response.Content 在 return 上始终为 NULL。奇怪的是它会在标准执行上记录内容,但不会在异步上记录内容。我已经无计可施了。任何帮助将不胜感激。

我尝试使用标准的 client.Execute 和 client.ExecuteAsync,两者的结果似乎相同,除了日志记录部分。

常规方法(标识信息 X'd out):

                RestClient myClient = new RestClient(uri);
                var request = new RestRequest(Method.GET);

                request.AddHeader("cache-control", "no-cache");
                request.AddHeader("Connection", "keep-alive");
                request.AddHeader("accept-encoding", "gzip, deflate");
                request.AddHeader("Host", "XXXXX");
                request.AddHeader("Cache-Control", "no-cache");
                request.AddHeader("Accept", "*/*");
                request.AddHeader("Authorization", "XXX");

                Serilog.Log.Information($"Request is {request}");

                IRestResponse response = myClient.Execute(request);
                var htmlString = response.Content;
                Serilog.Log.Information($"Request is {response.Content}");

                return htmlString;

executeAsync 方法:

                RestClient myClient = new RestClient(uri);
                var request = new RestRequest(Method.GET);

                request.AddHeader("cache-control", "no-cache");
                request.AddHeader("Connection", "keep-alive");
                request.AddHeader("accept-encoding", "gzip, deflate");
                request.AddHeader("Host", "XXXXX");
                request.AddHeader("Cache-Control", "no-cache");
                request.AddHeader("Accept", "*/*");
                request.AddHeader("Authorization", "XXXXXXXXXX");

                Serilog.Log.Information($"Request is {request}");
                var htmlString = "";
                myClient.ExecuteAsync(request, response =>
                {
                    htmlString = response.Content;
                    Serilog.Log.Information($"Response is {response.Content}");
                });
                return htmlString;

显然我希望它既记录又 return 实际内容。好的,大师们,我做错了什么?

你一定是在开玩笑吧。它一直在工作(至少是常规执行),但字符串开头有太多空格,VS 2017 没有将其显示为本地。我必须深入研究才能看到它。