在不使用microsoft.sharepoint dll的情况下验证c#中的sharepoint链接
我正在验证常规URL,如下所示:在不使用microsoft.sharepoint dll的情况下验证c#中的sharepoint链接,c#,sharepoint,C#,Sharepoint,我正在验证常规URL,如下所示: private static bool IsUrlAvailable(string url) { if ((string.IsNullOrEmpty(url.Trim()) == true) || (url.Trim().ToLower().Equals("http://")) || (url.Trim().ToLower().Equals("https://"))) {
private static bool IsUrlAvailable(string url)
{
if ((string.IsNullOrEmpty(url.Trim()) == true) ||
(url.Trim().ToLower().Equals("http://")) ||
(url.Trim().ToLower().Equals("https://")))
{
return false;
}
if (!url.ToLower().StartsWith("http://") && !url.ToLower().StartsWith("https://"))
{
url = "http://" + url;
}
try
{
var req = (HttpWebRequest)WebRequest.Create(url);
req.Timeout = 15000;
req.Method = "HEAD";
using (var rsp = (HttpWebResponse)req.GetResponse())
{
if (rsp.StatusCode == HttpStatusCode.OK)
{
return true;
}
}
}
catch (Exception ex)
{
// Eat it because all we want to do is return false
}
// Otherwise
return false;
}
但由于我使用的是WebRequest.Create,内部网上经过身份验证的SharePoint URL由于权限被拒绝(404)错误而无法通过验证。现在我知道我们可以使用SPSite.Exists或OpenWeb对其进行验证,但这些仅在microsoft.sharepoint.dll中可用,我想知道是否有一种方法可以不使用此dll进行验证?404没有被拒绝权限。。。但找不到文件。因此,您可能确实找到了不存在的Url 你需要通过考试
旁注:请不要“吃掉所有的异常”-在关于WebRequests的文章中,您可以找到关于WebRequests的非常小的异常集(您可能只处理WebException)。404没有被拒绝的权限。。。但找不到文件。因此,您可能确实找到了不存在的Url 你需要通过考试
旁注:请不要“吃掉所有异常”-在关于WebRequests的文章中可以找到,在提出WebRequests的情况下,有非常少的异常是有趣的(您可能只处理WebException)。让您的代码使用:
req.UseDefaultCredentials=true代码>?让您的代码使用:req.UseDefaultCredentials=true代码>?对不起。给出了错误的错误代码。但是你说的解决了我的问题。非常感谢<代码>旁注:请不要“吃掉所有例外”
:)对不起。给出了错误的错误代码。但是你说的解决了我的问题。非常感谢<代码>旁注:请不要“吃掉所有例外”
:)
WebRequest request = WebRequest.Create ("http://www.contoso.com/default.html");
// If required by the server, set the credentials.
request.Credentials = CredentialCache.DefaultCredentials;
// Get the response.
HttpWebResponse response = (HttpWebResponse)request.GetResponse ();