zoukankan      html  css  js  c++  java
  • 【WebServices】调用 SharePoint WebServices 注意事项

    最近两三天被SharePoint的Web Services搞得晕头转向,网上查了一大堆例子,就没一个做得成的。没有一个可供下载的完整的源代码,从代码行间又觉察不出哪里有问题。一开始是弄不明白WSlists是个什么类,后来又碰到GetListCollection、GetListItems获取不到所需内容……周围无人可问,自己整个瘫掉,最终还是在国外朋友的一言半语中找到了问题的根源(中文的怎么就搜不到?),在这里和各位共享一下~

    •  首先,要调用SharePoint的Web Services,必须为工程添加 Web 引用(如图)。

     

    注意这里填写的Web 引用名,就是我之前一直找不到的“WSlists类”——其实是通过添加了引用生成的,也可以起别的名字,比如也有的人喜欢起spwsLists这种。

    •  关于GetListCollection() ,默认情况下,它会返回根站点下的所有list(注意,不管你在添加 Web 引用时指定的是根站点URL还是 根站点\子站点 URL,都是如此)。在上图中,填写的URL,指定的是testsite子站点,但事实上在调用GetListCollection()时还是返回了根站点的list。如果要筛选返回指定(子)站点的list,必须修改.Url属性值(即wsLists.Url = "http://www.gl.com:8800/testsite/_vti_bin/lists.asmx"这样,wsLists是一个WSLists对象)。

    [* 注意:/_Vti_bin/... 前面填写的是站点(可以含子站点)Url,而不能是具体到列表的Url,“http://www.gl.com:8800/testsite/mylist/_vti_bin/lists.asmx” 则是错误的]

    •  同样的,只有在设置了.Url属性值后,GetListItems()才能正确获取列表项,而且GetListItems方法的第一个参数,要求指定listName,建议输入列表的ID(MSDN例子也这样写)。


    •  使用Web Service进行列表操作时,涉及到书写CAML语句的, 指定某个列表栏目时,应使用<FieldRef Name="栏目内部名称">,同时Name不能为中文的(因为内部名称不会有中文的)。

     •  “调用Web服务:请求因HTTP状态401失败:Unauthorized” 解决方法

  • 相关阅读:
    Parameter Binding in ASP.NET Web API
    Which HTTP methods match up to which CRUD methods?
    ErrorHandling in asp.net web api
    HttpStatusCode
    Autofac Getting Started(默认的构造函数注入)
    Autofac Controlling Scope and Lifetime
    luvit 被忽视的lua 高性能框架(仿nodejs)
    undefined与null的区别
    VsCode中使用Emmet神器快速编写HTML代码
    字符串匹配---KMP算法
  • 原文地址:https://www.cnblogs.com/glife/p/1600899.html
Copyright © 2011-2022 走看看