从HTTP GET请求获取JSON字符串

时间:2014-01-20 23:06:26

标签: c# json http fiddler

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

我发现这样一个不错的JSON响应 enter image description here

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

每次我尝试时,我只是在链接上获得网页的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();

1 个答案:

答案 0 :(得分:4)

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

  • 网址有所不同:AllAttachements vs AllDocs,但这很小,我指的是“以防万一”
  • PARAMS有所不同:屏幕截图指定xpage=plain&outputSyntax=plain和您的代码 - 不是
  • HEADERS不同:您的代码为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。我只是通过将该网址粘贴到Chrome中来获取JSON数据。我认为您只是使用了错误的网址。