c# - RestSharp 响应内容始终为空,但仍记录 Execute
问题描述
发送基本 GET 时,response.Content 在返回时始终为 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;
显然,我希望它既记录又返回实际内容。好的,大师们,我做错了什么?
解决方案
你在跟我开玩笑。它一直在工作(至少是常规执行),但是字符串开头的空格太多以至于 VS 2017 没有将其显示为本地。我必须深入研究才能看到它。
推荐阅读
- javascript - 计算数组中的距离字符串/数字
- python - 在 python dash 中分配函数以丢弃淹没的元素
- vb.net - 使用 Oracle 11g 选择查询中的多个条件
- java - 找出实际加载了哪些 Java 类并减少 jar
- reactjs - Graphql Apollo 客户端问题:[网络错误]:SyntaxError:JSON 输入意外结束
- hibernate - Spring Boot 页面加载缓慢
- razor - 从 asp.net 核心中的中间件返回现有的剃刀视图
- scala - 如何以功能样式计算“n”天间隔日期?
- javascript - 计时器停止运行而没有调用 clearInterval
- css - 背景图像在手机上看起来很模糊