【问题标题】:how to change Console App output result only not whole html如何仅更改控制台应用程序输出结果而不是整个 html
【发布时间】:2017-10-13 08:59:46
【问题描述】:

当我运行我的 Html 代码时,它只显示 JSON 结果,但如果我使用控制台调用 http,它会显示 Web 表单的整个代码。我可以进行哪些更改以使其仅在控制台应用上显示 JSON 结果?

[Html 代码]

[控制台结果]

        using (var client = new WebClient()) //WebClient  
        {
            client.Encoding = System.Text.Encoding.UTF8;
            client.Headers.Add("Content-Type:application/json");
            client.Headers.Add("Accept:application/json");
            var result = client.DownloadString("http://localhost:49299/test.aspx");  
            Console.WriteLine(result);
            Console.ReadLine();
        }

【问题讨论】:

  • 我认为返回的结果不是application/json。它是文本/html。需要确保服务器返回真正的 application/json。没有服务器代码,所以不确定这里发生了什么
  • 我已将第一张图片更新为 html 代码

标签: c# html console-application


【解决方案1】:

您正在阅读整个网页响应,其中包括所有 HTML 和 JavaScript。

显然,您想要的是浏览器在页面上运行的 JavaScript 函数的结果。他们解决这个问题的方法是让 JavaScript 对包含结果的服务器进行 XHR 回调。

由于您使用的是 ASP.NET,因此您可以设置一个 ASP.NET Web API 项目来响应此类 REST 调用。

【讨论】:

  • 还有其他方法吗?只是编辑旧代码。我已将图片 1 编辑为 html 代码。
  • @Avivi 我很难理解它是如何工作的。需要在客户端上运行用于报告地理位置的 JavaScript。用C#下载页面内容只会下载代码,不能在客户端运行代码。
【解决方案2】:

您的服务器代码只返回包含 javascript 的 html。如果您通过 Web 浏览器向服务器请求,浏览器将执行 javascript,您会看到正确的数据。同时,如果您通过 C# 代码发出请求,则不会执行 javascript。所以你需要知道

  1. asp.net webforms如何在这里返回json数据How to return a JSON object in standard web forms .Net
  2. 如何通过 C# 使用 google geocoder api。您可以通过 C# 手动请求 google api 或仅使用包装器。可能是这个https://github.com/chadly/Geocoding.net。我还没有尝试过这个

【讨论】:

    猜你喜欢
    • 2014-11-30
    • 1970-01-01
    • 1970-01-01
    • 2020-04-24
    • 1970-01-01
    • 2020-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多