X-Git-Url: http://sru.miketaylor.org.uk/?a=blobdiff_plain;f=src%2Ftorus.cpp;h=b5f0275761889790eee13f6646825375c564130e;hb=73f37c91c144b070020df2f27472c09b62367acf;hp=6ee010f7d659ca17f09b9ef639bf8e02ffc488bc;hpb=50597d2f7d3607e91c94601eb8eb495d73be3eae;p=metaproxy-moved-to-github.git diff --git a/src/torus.cpp b/src/torus.cpp index 6ee010f..b5f0275 100644 --- a/src/torus.cpp +++ b/src/torus.cpp @@ -29,13 +29,20 @@ namespace mp = metaproxy_1; xmlDoc *mp::get_searchable(mp::Package &package, std::string url_template, const std::string &db, + const std::string &query, const std::string &realm, const std::string &proxy) { - // http://newmk2.indexdata.com/torus2/searchable.ebsco/records/?query=udb=aberdeenUni + // http://mk2.indexdata.com/torus2/searchable/records/?query=udb%3d%db + // or + // http://mk2.indexdata.com/torus2/searchable/records/?query=%query xmlDoc *doc = 0; size_t found; + found = url_template.find("%query"); + if (found != std::string::npos) + url_template.replace(found, 6, mp::util::uri_encode(query)); + found = url_template.find("%db"); if (found != std::string::npos) url_template.replace(found, 3, mp::util::uri_encode(db)); @@ -46,7 +53,7 @@ xmlDoc *mp::get_searchable(mp::Package &package, Z_HTTP_Header *http_headers = 0; mp::odr odr; - + z_HTTP_header_add(odr, &http_headers, "Accept","application/xml"); yaz_url_t url_p = yaz_url_create(); @@ -60,13 +67,13 @@ xmlDoc *mp::get_searchable(mp::Package &package, 0, /* content buf */ 0 /* content_len */ ); - if (http_response && http_response->code == 200 && + if (http_response && http_response->code == 200 && http_response->content_buf) { package.log("zoom", YLOG_LOG, "Torus: %s OK", url_template.c_str()); doc = xmlParseMemory(http_response->content_buf, http_response->content_len); - + } else {