Chilkat HOME .NET Core C# Android™ AutoIt C C# C++ Chilkat2-Python CkPython Classic ASP DataFlex Delphi ActiveX Delphi DLL Go Java Lianja Mono C# Node.js Objective-C PHP ActiveX PHP Extension Perl PowerBuilder PowerShell PureBasic Ruby SQL Server Swift 2 Swift 3,4,5... Tcl Unicode C Unicode C++ VB.NET VBScript Visual Basic 6.0 Visual FoxPro Xojo Plugin
(Perl) SCIS SearchSee more SCiS Schools Catalogue ExamplesDemonstrates the SCIS (Schools Catalogue Information Service) search API call.
use chilkat(); # This example assumes the Chilkat API to have been previously unlocked. # See Global Unlock Sample for sample code. $http = chilkat::CkHttp->new(); # Implements the following CURL command: # curl -i -X GET --url 'https://api.scisdata.com/catalogue/api/search?query=titleSearch%3Adogs%20AND%20publicationYear%3A2015&from=0&size=20&sort=author&order=asc' -H 'Authorization: Basic ****' # Use the following online tool to generate HTTP code from a CURL command # Convert a cURL Command to HTTP Source Code # This causes the "Authorization: Basic ****" to be added to each request. $http->put_Login("myLogin"); $http->put_Password("myPassword"); $http->put_BasicAuth(1); $sbQuery = chilkat::CkStringBuilder->new(); $sbQuery->Append("titleSearch:dogs AND publicationYear:2015"); $sbUrl = chilkat::CkStringBuilder->new(); $sbUrl->Append("https://api.scisdata.com/catalogue/api/search?query="); # If non-usascii chars are included in the search, we don't know if utf-8 or windows-1252 is desired by the server. You'll need to find out.. $sbUrl->Append($sbQuery->getEncoded("url","utf-8")); $sbUrl->Append("&from=0&size=20&sort=author&order=asc"); $sbResponseBody = chilkat::CkStringBuilder->new(); $success = $http->QuickGetSb($sbUrl->getAsString(),$sbResponseBody); if ($success == 0) { print $http->lastErrorText() . "\r\n"; exit; } $jResp = chilkat::CkJsonObject->new(); $jResp->LoadSb($sbResponseBody); $jResp->put_EmitCompact(0); print "Response Body:" . "\r\n"; print $jResp->emit() . "\r\n"; $respStatusCode = $http->get_LastStatus(); print "Response Status Code = " . $respStatusCode . "\r\n"; if ($respStatusCode >= 400) { print "Response Header:" . "\r\n"; print $http->lastHeader() . "\r\n"; print "Failed." . "\r\n"; exit; } # Sample JSON response: # (Sample code for parsing the JSON response is shown below) # { # "data": { # "hits": { # "hits": [ # { # "_index": "scisdata2", # "_type": "bibdatatype", # "_source": { # "isbn": [ # "9781517638160" # ], # "languageTermCode": [ # "eng" # ], # "mainAuthor": { # "namePersonalPrimary": [ # "Abbott, Eleanor Hallowell." # ] # }, # "title": { # "titlePrimary": [ # "Peace on Earth, good-will to dogs" # ], # "noteStmOfResponsibility": [ # "by Eleanor Hallowell Abbott." # ] # }, # "scisType": [ # "Book" # ], # "dateIssuedMarc": 2015, # "languageTermValue": [ # "English" # ], # "contributor": {}, # "isbn13": "9781517638160", # "imageFileName": "9781517638160.jpg", # "publicationDetails": "United States, Create Space Independent Publishing Platform, 2015", # "isbn10": "151763816X", # "id": "1867852" # }, # "_id": "1867852", # "sort": [ # "abbott, eleanor hallowell." # ], # "_score": null # }, # { # "_index": "scisdata2", # "_type": "bibdatatype", # "_source": { # "isbn": [ # "9781780747910" # ], # "languageTermCode": [ # "eng" # ], # "mainAuthor": { # "namePersonalPrimary": [ # "Adams, Richard." # ] # }, # "title": { # "titlePrimary": [ # "The plague dogs" # ], # "noteStmOfResponsibility": [ # "Richard Adams." # ] # }, # "scisType": [ # "Book" # ], # "dateIssuedMarc": 2015, # "languageTermValue": [ # "English" # ], # "contributor": {}, # "isbn13": "9781780747910", # "imageFileName": "9781780747910.jpg", # "publicationDetails": "New York, Rock the Boat, 2015", # "isbn10": "1780747918", # "id": "1749228" # }, # "_id": "1749228", # "sort": [ # "adams, richard." # ], # "_score": null # }, # ... # ], # "total": 84, # "max_score": null # }, # "took": 585, # "timed_out": false # }, # "subscriptionStatus": {} # } # Sample code for parsing the JSON response... # Use the following online tool to generate parsing code from sample JSON: # Generate Parsing Code from JSON $dataHitsTotal = $jResp->IntOf("data.hits.total"); $dataHitsMax_score = $jResp->stringOf("data.hits.max_score"); $dataTook = $jResp->IntOf("data.took"); $dataTimed_out = $jResp->BoolOf("data.timed_out"); $i = 0; $count_i = $jResp->SizeOfArray("data.hits.hits"); while ($i < $count_i) { $jResp->put_I($i); $v_index = $jResp->stringOf("data.hits.hits[i]._index"); $v_type = $jResp->stringOf("data.hits.hits[i]._type"); $v_sourceDateIssuedMarc = $jResp->IntOf("data.hits.hits[i]._source.dateIssuedMarc"); $v_sourceIsbn13 = $jResp->stringOf("data.hits.hits[i]._source.isbn13"); $v_sourceImageFileName = $jResp->stringOf("data.hits.hits[i]._source.imageFileName"); $v_sourcePublicationDetails = $jResp->stringOf("data.hits.hits[i]._source.publicationDetails"); $v_sourceIsbn10 = $jResp->stringOf("data.hits.hits[i]._source.isbn10"); $v_sourceId = $jResp->stringOf("data.hits.hits[i]._source.id"); $v_id = $jResp->stringOf("data.hits.hits[i]._id"); $v_score = $jResp->stringOf("data.hits.hits[i]._score"); $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.isbn"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.isbn[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.languageTermCode"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.languageTermCode[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.mainAuthor.namePersonalPrimary"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.mainAuthor.namePersonalPrimary[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.title.titlePrimary"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.title.titlePrimary[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.title.noteStmOfResponsibility"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.title.noteStmOfResponsibility[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.scisType"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.scisType[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.languageTermValue"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.languageTermValue[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i].sort"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i].sort[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.contributor.namePersonalOther"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.contributor.namePersonalOther[j]"); $j = $j + 1; } $j = 0; $count_j = $jResp->SizeOfArray("data.hits.hits[i]._source.contributor.nameCorporateOther"); while ($j < $count_j) { $jResp->put_J($j); $strVal = $jResp->stringOf("data.hits.hits[i]._source.contributor.nameCorporateOther[j]"); $j = $j + 1; } $i = $i + 1; } |
© 2000-2024 Chilkat Software, Inc. All Rights Reserved.