2012-08-01 31 views
0

我需要在SharePoint站点上为JSON数据发出http请求。当通过浏览器访问数据时,我首先会提示输入用户名和密码。输入我的凭证后,我可以看到JSON。我是C#的新手,想知道构建我的请求,检索响应和解析JSON的最佳方法。我以前曾在java中使用过JSON请求,但从未必须处理Sharepoint凭证。提前致谢。HTTPClient使用登录凭证请求JSON C#Sharepoint

回答

1

在这里你去:

private void login_Click(object sender, EventArgs e) 
{ 
    string username = uname.Text; 
    string password = pword.Text; 
    string url = "THE SITE URL HERE"; 
    var req = (HttpWebRequest)WebRequest.Create(url); 
    req.Credentials = new NetworkCredential(username, password); 
    var response = req.GetResponse(); 
    //Do Stuff with response 
} 
+0

的XmlDocument xmlDoc中=新的XmlDocument(); xmlDoc.Load(response.GetResponseStream()); – MCR 2012-08-01 20:40:37

+0

这看起来不错,但由于某种原因,当我尝试将响应流加载到XMLDocument中时,我得到“根级数据无效......”。任何想法为什么?如果我输出responseStream到控制台,我得到“System.Net.ConnectStream” – MCR 2012-08-01 20:47:52

+0

流不是一个字符串...你需要先读它。使用(var reader = new System.IO.StreamReader(res.GetResponseStream())) { string responseBody = reader.ReadToEnd(); }' – CodeDemen 2012-08-02 19:55:24

0

您应该能够创建一个WebRequest,并在那里传递您的凭证,或者如果这样做不起作用,请查看有关设置您的Sharepoint凭证的答案。

您应该很好地制作一个HttpWebRequest并将ClientCertificates属性设置为从您的.pfx文件中包含您的证书,除非您有其他权限问题正在进行,因为您不需要拥有ServerCertificateValidationCallback处理程序以便建立到远程服务器的SSL连接作为客户端。如果您希望拦截,检查和/或覆盖远程计算机证书的默认验证行为,则该处理程序是唯一必需的。

https://stackoverflow.com/questions/5595049/servicepointmanager-servercertificatevalidationcallback-question