【问题标题】:Get JSON string from HTTP GET request从 HTTP GET 请求中获取 JSON 字符串
【发布时间】:2014-01-21 07:15:04
【问题描述】:

使用 fiddler 观察这个 URL: http://opencaselist.paperlessdebate.com/bin/AllDocs?view=attachments#format=json?|t=allattachments&p=1&l=10&s=filename&d=asc

我找到了这样一个不错的 JSON 响应

如何将此响应转换为可以使用 C# 保存在 txt 文件中的字符串?有没有办法将 HTTP Web 响应转换为字符串? NewtonSoft JSON 有什么可以帮助我的吗?是否有特定的术语可以帮助我更有效地使用 Google 搜索?

每次我尝试时,我都会在链接处获得网页的 HTML 版本,而不是我想要获得的 JSON 数据:

    string url = "http://opencaselist.paperlessdebate.com/bin/AllDocs?view=attachments#|t=allattachments&p=1&l=10&s=filename&d=asc";

    HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    httpWebRequest.Method = WebRequestMethods.Http.Get;
    httpWebRequest.Accept = "text/json";
    httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    HttpWebResponse response = (HttpWebResponse)httpWebRequest.GetResponse();
    response.Close();

【问题讨论】:

标签: c# json http fiddler


【解决方案1】:

请注意,在该屏幕截图上,存在一些差异:

  • URL 不同:AllAttachementsAllDocs,但这是次要的,我指出“以防万一”
  • PARAMS 完全不同:屏幕截图指定了 xpage=plain&outputSyntax=plain 和您的代码 - 不是
  • 标题不同:你的代码有Accept=text\json,而截图有Accept: text/javascript

您是否尝试过使用相同的参数和标头?

编辑:另外,我已经从您的代码中打开了该页面,它实际上是一个页面。加载后,它会生成额外的请求来

http://opencaselist.paperlessdebate.com/bin/get/XWiki/AllAttachmentsResults?xpage=plain&outputSyntax=plain&offset=1&limit=10&reqNo=1&sort=filename&dir=asc

如果您下载,它会生成 JSON 数据。根本没有标题,简单的 GET。我刚刚通过将该 URL 粘贴到 Chrome 中获得了 JSON 数据。我认为您只是使用了错误的 URL。

【讨论】:

  • 哦。这很有意义 - 我只是假设 URL fiddler 使用的 URL 与我在 chrome 中看到的 URL 相同。你怎么这么快就发现了我的错误,这超出了我的理解。我很敬畏。
  • Fiddler 向您显示所有请求,包括 AJAX 请求,其 URL 从未显示在 Chrome 的地址栏中。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-06-04
  • 1970-01-01
相关资源
最近更新 更多