【问题标题】:SharePoint 2010 ListData.svc REST API Randomly returns error: 'uriString' parameter represents an absolute URI from HTTPClientSharePoint 2010 ListData.svc REST API 随机返回错误:“uriString”参数表示来自 HTTPClient 的绝对 URI
【发布时间】:2019-10-22 18:30:09
【问题描述】:

我的 SharePoint 2010 REST API 出现间歇性问题。我有一个 .Net Core 控制台应用程序,它对 SharePoint 列表端点进行一系列调用以获取 JSON 响应。我的问题是,在随机时间,API 响应是一个错误页面:

无法创建相对 URI,因为 'uriString' 参数 代表一个绝对URI。http://www.example.com/somefolder/file.svc

我的 HTTPClient 配置有问题吗?是否有可以在 SharePoint 中切换以防止错误或更可靠的配置设置?

var uri = new Uri("http://www.example.com/");
var credential = new NetworkCredential("username", "password", "domain");
var credentialsCache = new CredentialCache { { uri, "NTLM", credential } };
var handler = new HttpClientHandler { Credentials = credentialsCache };
HttpClient Client = new HttpClient(handler);
Client.BaseAddress = new Uri("http://www.example.com/sharepoint/path/ListData.svc/");



// Make the list request
var result = await Client.GetAsync("MySharePointList");

【问题讨论】:

    标签: c# sharepoint .net-core sharepoint-2010 dotnet-httpclient


    【解决方案1】:

    要获取列表项,REST API URI 如下所示。

    http://sp2010/_vti_bin/ListData.svc/listname
    

    修改代码如下。

    var siteUrl = "http://www.example.com/";
    var listName = "MySharePointList";
    var uri = new Uri(siteUrl);
    var credential = new NetworkCredential("username", "password", "domain");
    var credentialsCache = new CredentialCache { { uri, "NTLM", credential } };
    var handler = new HttpClientHandler { Credentials = credentialsCache };
    HttpClient client = new HttpClient(handler);
    
    client.BaseAddress = new Uri(uri, "/_vti_bin/ListData.svc");       
    client.DefaultRequestHeaders.Add("Accept", "application/json;odata=verbose");
    client.DefaultRequestHeaders.Add("ContentType", "application/json;odata=verbose");
    var requestURL = siteUrl + "/_vti_bin/ListData.svc/" + listName;
    // Make the list request
    var result = client.GetAsync(requestURL).Result;
    var items= result.Content.ReadAsStringAsync();
    

    【讨论】:

    • 感谢您的回复。我确实实现了你的代码。我不确定在 .svc 段上添加/省略尾部斜杠是否会产生影响,所以我肯定会反映您的价值观。我仍然收到错误。您是否知道我可以尝试的其他任何东西 - 或者我可能想要验证的任何配置?
    猜你喜欢
    • 2015-09-12
    • 2015-02-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-20
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多