Содержание ответа RestSharp всегда равно нулю, но все равно регистрируется с помощью Execute - PullRequest
0 голосов
/ 31 мая 2019

При отправке базового GET ответ. Содержание всегда равно NULL при возврате.Странно то, что он будет регистрировать контент при стандартном выполнении, но не при асинхронном.Я в конце своего остроумия.Любая помощь будет принята с благодарностью.

Я попытался использовать стандартные client.Execute и client.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", "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;

Очевидно, я хочу, чтобы он одновременно регистрировал И возвращал фактическое содержимое.Хорошо, гуру, что я делаю не так?

1 Ответ

0 голосов
/ 31 мая 2019

Ты должно быть шутишь.Он работал все время (по крайней мере, регулярное выполнение), но в начале строки было так много пробелов, что VS 2017 не отображал его как локальный.Я должен был действительно углубиться, чтобы увидеть это.

...