-
MARC数据调用API接口代码示例
2017年06月24日 编目中心 59098次阅读 查看评论
为方便图书相关软件接入我们编目中心,在Z39.50基础上,特开发数据调用的Websevice接口,相比Z39.50,简单实用,只需要少量代码即可实现。
(该功能需要开通API帐号访问授权,一次性收费500元即可开通。)
下载说明文档:91api.docx
PHP代码(Json)
<?php /** * 检索marc数据 * * @param string $uid * 用户名 * @param string $pwd * 密码 * @param string $search_type * 搜索字段:isbn、title * @param unknown $search_val * 搜索内容 * @param number $dbcode * 选择数据库代码 * @param number $data_size * 最大返回数据(无论命中多少条),默认为1 * @param string $is_json * 是否采用json输出方式,默认为true,true为json格式,false为xml格式。 * @param string $is_parsing * 是否需要解析ISO2709格式位条目式文本式,false不解析,反之为true。 * @return array marc数据 */ function getMarc($uid, $pwd, $search_type, $search_val, $dbcode = 1, $data_size = 1, $is_json = "true", $is_parsing = "true") { $url = "http://z39.91marc.cn/app/f/?"; // Api地址 $param = array( // 参数组合 "uid" => $uid, "pwd" => $pwd, "key" => $search_type, "value" => $search_val, "dbcode" => $dbcode, "parsing" => $is_parsing, "json" => $is_json, "size" => $data_size ); $url .= http_build_query($param); $marc_data = json_decode(file_get_contents($url), true); return $marc_data; } ?>
C#代码(XML)
string searchurl = "http://z39.91marc.cn/app/f/?"; string uid = System.Web.HttpUtility.UrlEncode("demo", Encoding.UTF8); //用户名。 string pwd = System.Web.HttpUtility.UrlEncode("demo899", Encoding.UTF8); //密码。 string dbcode = "1"; //选择数据库代码。 string key = "title"; //检索项,isbn :书号,title:书名,seriesname:丛书名。 string value = System.Web.HttpUtility.UrlEncode("Flex 4", Encoding.UTF8); //检索词、关键字转码。 string size = "100"; //最大返回数据。 string parsing = "false"; //是否需要解析ISO2709格式位条目式文本式,false不解析,反之为true。 string json = "false"; //是否采用json输出方式,true为json格式,false为xml格式。 searchurl = searchurl + "uid=" + uid + "&pwd=" + pwd + "&dbcode=" + dbcode + "&key=" + key + "&value=" + value + "&parsing=" + parsing + "&json=" + json + "&size=" + size; //组合查询URL。 DataSet ds = new DataSet(); ds.ReadXml(searchurl); string allmarc = ""; string marc = ""; int i; for (i = 0; i <= ds.Tables[0].Rows.Count - 1; ++i) { marc = ds.Tables[0].Rows[i][0].ToString(); allmarc = allmarc + marc + "\r\n"; } textBox1.Text = allmarc;
VB.NET代码(json)
'利用json.net开源免费控件实现 Imports Newtonsoft.Json Imports Newtonsoft.Json.Linq '记得引用System.Web噢 Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim searchurl As String = "http://z39.91marc.cn/app/f/?" Dim uid As String = System.Web.HttpUtility.UrlEncode("demo", Encoding.UTF8) '用户名。 Dim pwd As String = System.Web.HttpUtility.UrlEncode("demo899", Encoding.UTF8) '密码。 Dim dbcode As String = "1" '选择数据库代码。 Dim key As String = "isbn" '检索项,isbn :书号,title:书名,seriesname:丛书名。 Dim value As String = System.Web.HttpUtility.UrlEncode("9787805952109", Encoding.UTF8) '检索词、关键字转码。 Dim size As String = "100" '最大返回数据。 Dim parsing As String = "true" '是否需要解析ISO2709格式位条目式文本式,false不解析,反之为true。 Dim json As String = "true" '是否采用json输出方式,true为json格式,false为xml格式。 searchurl = searchurl & "uid=" & uid & "&pwd=" & pwd & "&dbcode=" & dbcode & "&key=" & key & "&value=" & value & "&parsing=" & parsing & "&json=" & json & "&size=" & size '组合查询URL。 Dim josn As String = GetHtmCode(searchurl, "utf-8") '获取网页数据 Dim dt As DataTable dt = Json2Dtb(josn) DataGridView1.DataSource = dt '数据加载到DataGridView1 End Sub ' 利用json转换为datatable数据表 Public Function Json2Dtb(ByVal json As String) As DataTable Dim obj As New JObject Dim data As String obj = JObject.Parse(json) Dim objdata As New JObject '数据的json If obj("records") <> "0" Then '0为没返回数据,失败,反之>=1 data = obj("data").ToString Json2Dtb = JsonConvert.DeserializeObject(Of DataTable)(data) Else Json2Dtb = Nothing End If End Function '获取网页的HTML源码 Public Function GetHtmCode(ByVal httpURL As String, ByVal CodeFormat As String) As String Dim httpReq As System.Net.HttpWebRequest Dim objResponse As System.Net.HttpWebResponse Try httpReq = CType(System.Net.HttpWebRequest.Create(httpURL), System.Net.HttpWebRequest) httpReq.Method = "GET" httpReq.Timeout = 10 * 1000 '十秒超时 objResponse = CType(httpReq.GetResponse, System.Net.HttpWebResponse) Dim MySR As New System.IO.StreamReader(objResponse.GetResponseStream, System.Text.Encoding.GetEncoding(CodeFormat)) GetHtmCode = MySR.ReadToEnd MySR.Close() Catch ex As System.Net.WebException GetHtmCode = Err.Description End Try End Function
相关日志:
- 2015-01-09 20:57:45 编目中心会员收费标准
- 2021-09-13 21:37:40 编目加工技术服务
- 2015-07-13 12:47:00 踏浪的Z39.50参数配置方法
- 2017-11-09 10:49:01 汇文LIBSYS5.5配置Z3
- 2015-07-11 12:48:39 金盘GDLISXP的Z39.5
- 2015-01-09 20:56:18 编目中心如何下载使用
- 2017-04-08 11:50:15 如何利用编目中心网站批套录MA
- 2022-10-12 10:11:50 在阿法迪eLibrary中配置
- 登录编目中心
-
- 书目检索
-
- 标签列表
- 最新留言
-
对不起,目前访问不到国土服务器OPAC网站咯,歇歇吧
是什么软件的试用版呢?
您好,请问有试用版本吗
感谢分享
图畅云编目安装之后打开提示“对不起,连接不上服务器,请联系公司”授权码和密码都输入了
我没有改过密码,什么这两天一直登陆不上去了呢?
软件打不开
想问一下,您这个软件是怎么使用的呢?我下载后解压后运行那个exe文件会报错,提示:组件mshflxgd.ocx或其依赖项之一未正确注册文件丢失或无效。这个是什么原因呢?
想问一下,您这个软件是怎么使用的呢?我下载后解压后运行那个exe文件会报错,提示:组件mshflxgd.ocx或其依赖项之一未正确注册文件丢失或无效。这个是什么原因呢?
想请问一下XML数据如何转换为ISO文件,谢谢
- 控制面板
- 搜索
- 文章归档
评论列表: