Content Server - Web Services - How To Use Search API With REST Authentication
Content Server - Web Services - How To Use Search API With REST Authentication
Technical Article applies Content Server SDK (Builder, LAPI, Java, Web Services)
to: [ 10.0 10.5 ]
Summary: In Content Server, how can you authenticate using REST API and
use Search API?
Error Message:
Resolution: The idea is to extract the token that is returned by the Authenticate
Method and inject it into your Search HTTP request. The
following is an example of what can be done:
string token =
REST_Authenticate(username, password);
HttpWebRequest searchRequest =
(HttpWebRequest)WebRequest.Create(new
Uri(yourCSserver));
postData2 += "&outputformat=xml";
var searchPost =
Encoding.ASCII.GetBytes(postData2);
searchRequest.ContentLength =
searchPost.Length;
searchRequest.ContentType =
"application/x-www-form-urlencoded";
searchRequest.Method = "POST";
searchRequest.Credentials =
CredentialCache.DefaultCredentials;
searchRequest.Headers.Add("OTCSTicket",
token);
searchRequest.CookieContainer = new
CookieContainer();
searchRequest.Referer = yourserver;
stream.Write(searchPost, 0,
searchPost.Length);
}
HttpWebResponse searchResponse =
(HttpWebResponse)searchRequest.GetResponse();
Stream dataStream =
searchResponse.GetResponseStream();
string responseFromServer =
reader.ReadToEnd();
Console.WriteLine(responseFromServer);
searchResponse.Close();
reader.Close();
dataStream.Close();
Console.ReadKey();
}
/// <summary<
/// </summary>
string token;
//example : http://<<server
name>>:port/<<path>>/api/<<version>>/auth
byte[] byteArray =
Encoding.UTF8.GetBytes(payload);
var request =
(HttpWebRequest)HttpWebRequest.Create(contentURL);
request.Method = "POST";
request.ContentType = "application/x-www-
form-urlencoded";
request.ContentLength = byteArray.Length;
request.Credentials =
CredentialCache.DefaultCredentials;
stream.Write(byteArray, 0,
byteArray.Length);
if (response.StatusCode !=
HttpStatusCode.OK) {
var message =
String.Format("Request failed. Received HTTP {0}",
response.StatusCode);
throw new
ApplicationException(message);
}
serializer.RegisterConverters(new[] {
new DynamicJsonConverter() });
dynamic obj =
serializer.Deserialize(json, typeof(object));
token = obj.ticket;
return token;
Attachments: