1、管理员身份Visual Studio,新建类项目

  SPCOM

2、编写逻辑实现代码

  重点关注搜索结果的属性包括:

Title,Author,Path,Description,HitHighlightedSummary,FileExtension,FileType,OriginalPath,Size,Write,LastModifiedTime,IsDocument

        public string Search(string keyword, int startrow, int rowlimit, string site, string username, string password, string domain)
{
try
{
string url = string.Format("{3}/_api/search/query?querytext='{0}'&startrow={1}&rowlimit={2}&trimduplicates=false&selectproperties='Title,Author,Path,Description,HitHighlightedSummary,FileExtension,FileType,OriginalPath,Size,Write,LastModifiedTime,IsDocument'", HttpUtility.UrlEncode(keyword), startrow, rowlimit, site);
HttpWebRequest req = (HttpWebRequest)WebRequest.Create(url);
req.Credentials = new NetworkCredential(username, password, domain);
req.Method = "GET";
req.Accept = "application/json;odata=verbose";
req.ContentType = "application/json;charset=UTF-8";//text/plain; charset=utf-8
HttpWebResponse res = (HttpWebResponse)req.GetResponse();
using (StreamReader reader = new StreamReader(res.GetResponseStream(), Encoding.UTF8))
{
string html = reader.ReadToEnd();
return JsonConvert.SerializeObject(new Response() { Result = true, Data = new SearchResult(html) });
}
}
catch (Exception ex)
{
return JsonConvert.SerializeObject(new Response() { Result = false, Message = ex.Message });
}
}

分别对SharePoint类和接口类中Search方法添加Guid(使用Visual Studio自带的GUID生成工具:工具 ->创建GUID)

3、强名称签名

  签名 -> 为程序集签名 -> 新建 -> SPCOM.pfx

4、应用程序 ->程序集信息 ->勾选“版本号&使程序Com可见”

5、生成 -> 勾选"为COM互操作注册"

6、编译生成SPCOM.dll

7、管理员方式打开:VS2014开发工具命令提示【部署时,目标机上可能无相关的regasm和gacutil工具,可找到该工具并拷贝到目标机使用】

  跳转到SPCOM.dll所在文件夹

  cd /d D:\Dev\AspCommon\com\dll\

  -> regasm SPCOM.dll /tlb:SPCOM.tlb  生成 *.tlb文件/注册类型

  -> gacutil /i SPCOM.dll  将程序集添加到缓存

8、测试功能

     dim sp
set sp = Server.CreateObject("SPCOM.SharePoint") dim txtSearch,result
if request.QueryString.Count>0 then
txtSearch = Request("txtSearch")
result = sp.Search(txtSearch,0, 10, "http://**/sites/cnblog", "administrator", "****", "spserver")
end if

输入:“正则表达式”

结果:

{"Result":true,"Data":{"TotalRows":2,"StartRow":0,"RowCount":2,"RowLimit":10,"Rows":[{"Title":"一、正则表达式是什么?","Author":"MINGYUE","Path":"file://192.168.244.170/Doc/正则表达式.docx","Description":null,"HitHighlightedSummary":"比较正规的解释是:正则表达式使用单个字符串来描述、匹配一系列符合某个句法规则的字符串 在这里,我希望使用一个更为通俗的自然语言来描述它:正则表达式就是用一类字符的统称来描述这一大批字符 举个例子,正则里说汉字,那么其实它就涵盖了所有的中国文字 现在你是否明白了正则到底是个什么东西了吧 不要紧,继续往下看,文中会通过一些简单的实例来帮助你对正则的理解 三、正则表达式要 ","FileExtension":"docx","FileType":"docx","OriginalPath":"file://192.168.244.170/Doc/正则表达式.docx","Size":25906,"Write":"2013-10-21T18:53:00+08:00","LastModifiedTime":"2013-10-21T18:53:00+08:00","IsDocument":true},{"Title":"SQL数据库.docx","Author":"MINGYUE","Path":"file://192.168.244.170/Doc/SQL数据库.docx","Description":null,"HitHighlightedSummary":"Rank,Dense_rank,Row_number函数\t6 first、last函数:排名查询\t6 private static string connectionString = "Data Source=127.0.0.1:1521/orcl;User ID = test;Password = test;Unicode=True 连接所有的查询结果、去掉 ","FileExtension":"docx","FileType":"docx","OriginalPath":"file://192.168.244.170/Doc/SQL数据库.docx","Size":104514,"Write":"2014-01-27T01:45:00+08:00","LastModifiedTime":"2014-01-27T01:45:00+08:00","IsDocument":true}]},"Message":null} 

 附上代码

留下该文以便以后查阅,如有错误,请帮忙指出...

更新COM组件的dll时,需要运行第7步中的gacutil /i SPCOM.dll,重新将程序集添加到缓存中

小记SharePoint REST API Search和COM的更多相关文章

  1. Windows 商店应用中使用 SharePoint REST API

    前面一篇我们介绍了 Office 365 REST API 的官方工具的使用,本篇我们来看一下 SharePoint REST API 本身的描述.结构和使用方法,以及一些使用经验. 首先来看看Sha ...

  2. [sharepoint]Rest api相关知识(转)

    写在前面 最近又开始弄rest api了,通过sharepoint rest api获取站点信息,Items,fields非常方便,再结合OData查询,更是得心应手.这里记录学习的时候用到的知识点, ...

  3. How to Call SharePoint 2013 API Service to Query The Lists

    How to Call SharePoint 2013 API In SharePoint 2013, we can query the list by it owner service, then ...

  4. [sharepoint]rest api文档库文件上传,下载,拷贝,剪切,删除文件,创建文件夹,修改文件夹属性,删除文件夹,获取文档列表

    写在前面 最近对文档库的知识点进行了整理,也就有了这篇文章,当时查找这些接口,并用在实践中,确实废了一些功夫,也为了让更多的人走更少的弯路. 系列文章 sharepoint环境安装过程中几点需要注意的 ...

  5. SharePoint REST API - 基本操作(二)

    博客地址:http://blog.csdn.net/FoxDave 上一节讲了SharePoint REST API的一些基本操作,本节将继续介绍一些关于SharePoint REST API的内容. ...

  6. SharePoint REST API - 基本操作(一)

    博客地址:http://blog.csdn.net/FoxDave 本文讲述如何应用SharePoint的REST接口完成基本的增删查改操作. 使用SharePoint客户端API和REST服务进 ...

  7. SharePoint REST API - 概述

    博客地址:http://blog.csdn.net/FoxDave SharePoint REST API不同于传统的Server Object Model和Client Object Model ...

  8. SharePoint JavaScript API in application pages

    前言 最近,在SharePoint 应用程序页中写JavaScript API,进行一些数据交互.其实,很简单的事情却遇到了问题,记录一下,希望能对遇到类似问题的人以帮助. 引用JavaScript ...

  9. SharePoint REST api

    http://msdn.microsoft.com/en-us/magazine/dn198245.aspx Understanding and Using the SharePoint 2013 R ...

随机推荐

  1. _tkinter.TclError: image "pyimage1" doesn't exist 解决办法

    _tkinter.TclError: image "pyimage1" doesn't exist 解决办法 1 def logout(self): 2 login.LoginWi ...

  2. 通过超链接启动App

    问题:微信里分享一个链接给你,你点击这个链接,一.如果你安装了这个钱包,那就直接打开钱包.二.如果没有安装钱包就跳转到下载钱包的地方 要点:首先要让浏览器知道 app 是谁,然后再让浏览器调用app ...

  3. Form表单中不同的按钮进行不同的跳转

    本文参考:http://my.oschina.net/sallency/blog/300568 在开发工作共我们往往会遇到一个表单需要包含多个action不同的提交动作,这时候就不能在使用submit ...

  4. 使用安装 php-memcache-client

    1.memcache:是一个高效的分布式内存对象缓存系统 2.  IES---请求--->服务器(apace) | | |---->会查看memcache.是否有IES想要的内容--> ...

  5. Vue.js之组件(component)

    从结构上看,组件之于实例,就好比轮子之于汽车.从属性和方法来看,组件有实例的大部分方法,如果Vue实例是孙悟空,组件就好比实例的一个毫毛,变化多端却为Vue实例所用. 目录: 组件的注册 is的作用 ...

  6. scala-04-set操作

    Scala Set(集合)是没有重复的对象集合,所有的元素都是唯一的. Scala 集合分为可变的和不可变的集合. 默认情况下,Scala 使用的是不可变集合,如果你想使用可变集合,需要引用 scal ...

  7. HTML5知识汇总,总有你不知道的o(≧v≦)o~~

    html5知识点汇总 一.html5发展历程以及规划 html5从2006年开始立项,用于替代1999年的html4,历经12年,完成了第一个版本html5.0,并于2014年底发布. 在接下来的日子 ...

  8. Tomcat学习总结(10)——Tomcat多实例冗余部署

    昨天在跟群友做技术交流的时候,了解到,有很多大公司都是采用了高可用的,分布式的,实例沉余1+台.但是在小公司的同学也很多,他们反映并不是所有公司都有那样的资源来供你调度.往往公司只会给你一台机器,因为 ...

  9. Golang 函数function

    函数function Go函数不支持嵌套.重载和默认参数 但支持以下特性: 无需声明原型 不定长度变参 多返回值 命名返回值参数 匿名函数 闭包 定义函数使用关键字func,且左大括号不能另起一行 函 ...

  10. Font Awesome(一套很棒的图标库)

    Font Awesome 是一个非常方便的图标库.这些图标都是矢量图形,被保存在 .svg 的文件格式中.这些图标就和字体一样,你可以通过像素单位指定它们的大小,它们将会继承其父HTML元素的字体大小 ...