2017-10-13 8 views
0

当我运行我的Html代码时,它只显示JSON结果,但如果我使用控制台调用http它显示Web窗体的整个代码。我可以更改哪些内容,以便仅在控制台应用上显示JSON结果?如何更改控制台应用程序输出结果只有不完整html

[HTML代码]

enter image description here

[控制台结果]

enter image description here

 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(); 
     } 
+0

我认为返回的结果不是application/json。它是text/html。需要确保服务器真正返回application/json。没有服务器代码,所以不知道这里发生了什么 –

+0

我已更新第1张图片成为html代码 – Avivi

回答

0

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

显然,你想要的是浏览器在页面上运行的JavaScript函数的结果。他们通过让JavaScript执行XHR回调到包含结果的服务器来解决这个问题。

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

+0

任何其他方式来做到这一点?只需在旧代码上编辑即可。我已经编辑图片1成为html代码。 – Avivi

+0

@Avivi我很难理解它是如何工作的。要报告地理位置的JavaScript需要在客户端上运行。在C#中下载页面的内容将只下载代码,它不能在客户端上运行代码。 –

0

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

  1. 如何asp.net web表单返回JSON数据在这里How to return a JSON object in standard web forms .Net
  2. 如何消费由C#谷歌地理编码API。你可以通过C#手动请求谷歌API,或者只是使用包装。可能是这个https://github.com/chadly/Geocoding.net。我还没有尝试过这
相关问题