2014-01-20 48 views
0

使用招来观察这个网址: http://opencaselist.paperlessdebate.com/bin/AllDocs?view=attachments#format=json?|t=allattachments&p=1&l=10&s=filename&d=asc获取JSON字符串的HTTP GET请求

我找到这样 enter image description here

我如何得到这个响应转换成字符串,我可以节省一笔可观的JSON响应在一个txt文件中使用C#?有没有办法将HTTP Web Response转换为字符串?有什么可以帮助我的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(); 
+0

看看这个链接http://stackoverflow.com/questions/2108297/how-to-get-json-response-using-system-net-webrequest-in-c – Goose

回答

4

注意,在该截图,有一些差异:

  • 的URL是不同的方法:AllAttachements VS AllDocs,但这是次要的,我指出它“以防万一”
  • 的PARAMS的方式不同:截图指定xpage=plain&outputSyntax=plain一第二你的代码 - 而不是
  • 标题是不同的:你的代码有Accept=text\json而截图有Accept: text/javascript

您是否尝试过使用相同 PARAMS和头?

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

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。

+0

好的侦探工作! –

+0

哦。这很有道理 - 我只是假设URL提琴手使用的是我在Chrome中看到的URL。你如何很快地发现我的错误超出了我的想象。我敬畏。 – pavja2

+1

Fiddler向您显示所有请求,包括AJAX请求,其网址在Chrome的地址栏中从不显示。 – EricLaw