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. Python-doc rst文件打开

    Python rst文件打开 RST与Python类似Javadoc与Java. 如果下载了别人的Python源码,里面有rst文件夹,我们可以转为html后用浏览器打开 某个开源项目的index.r ...

  2. [LeetCode] 206. Reverse Linked List_Easy tag: Linked List

    Reverse a singly linked list. Example: Input: 1->2->3->4->5->NULL Output: 5->4-> ...

  3. JS 中 if / if...else...替换方式

    说说烂大街的if/if...else...,程序中用得最多的流程判断语句. 对着曾经满屏的if/if...else...,心想能不能搞点事情,折腾点浪花浪里呀浪. 对顶着"这个需求很简单,怎 ...

  4. PHP之高性能I/O框架:Libevent(一)

    Libevent 是一个用C语言编写的.轻量级的开源高性能I/O框架,支持多种 I/O 多路复用技术: epoll. poll. dev/poll. select 和 kqueue 等:支持 I/O, ...

  5. docker(二)部署docker容器虚拟化平台

    yum安装方法参考:https://www.cnblogs.com/yufeng218/p/8370670.html https://www.cnblogs.com/straycats/p/84112 ...

  6. java监听器、定时器的使用

    1.监听器 在web.xml配置 <!-- 时间任务 --> <listener> <listener-class> com.hk.common.timer.Tim ...

  7. postgresql 创建用户并创建数据库

    首先通过 sudo -i -u postgres 以管理员身份 postgres 登陆,然后通过 createuser --interactive (-- interactive 是交互式,创建过程可 ...

  8. Makefile中.PHONY的作用

    单词phony (即phoney)的意思是:伪造的,假的.来自collins的解释是: If you describe something as phoney, you disapprove of i ...

  9. 玩转mongodb(八):分布式计算--MapReduce

    MongoDB提供了MapReduce的聚合工具来实现任意复杂的逻辑,它非常强大,非常灵活.MapReduce使用JavaScript作为“查询语言”,能够在多台服务器之间并行执行.它会将一个大问题拆 ...

  10. *2 FastCGI sent in stderr: "PHP message: PHP Parse error: syntax error, unexpected '[' in /application/nginx-1.6.3/html/zabbix/index.php on line 32" while reading response header from upstream, clien

    今天呢想学习一下zabbix监控一下我的服务情况,然后就开始安装我的zabbix服务,首先LNMP环境准备好了,Nginx版本为1.6.3,php版本为5.3.27,MySQL版本为二进制包安装的5. ...