Table of Contents |
---|
When writing clients in C# to consume the API, You can use the ServiceStack client (easy way) or use the .NET web client (harder way).
Using the ServiceStack Client
- Install the ServiceStackVS extension
- Add the nuget package ServiceStack.Client
- Add References to System.Runtime.Serialization and System.Net
- Right-click on the project and choose "Add ServiceStack Reference..."
- Enter the address of the host and name the service
Add the following Code:
Code Block language c# title Using ServiceStack.Client // Authenticate var client = new ServiceStack.JsonServiceClient("http://api.jiwa.com.au"); var authResponse = client.Send<ServiceStack.AuthenticateResponse>(new ServiceStack.Authenticate() { provider = "credentials", UserName = "api", Password = "password", RememberMe = true }); // Read a debtor var serviceStackDebtorResponse = client.Get(new DebtorGetRequest { AccountNoDebtorID = "10010000000061000000001V" });
Using the .NET WebClient
- Add References to System.Runtime.Serialization and System.Net
- Add the nuget package Newtonsoft.Json
- Add a new class file to the project and paste the code from the code generator of the API - you can get this by clicking on the "Generate C#" link on the metadata page:
Create a cookie aware WebClient using this code - this is needed to send the session Id with every request:
Code Block language c# title Cookie Aware WebClient public class CookieAwareWebClient : WebClient { public CookieAwareWebClient() { CookieContainer = new CookieContainer(); } public CookieContainer CookieContainer { get; private set; } protected override WebRequest GetWebRequest(Uri address) { var request = (HttpWebRequest)base.GetWebRequest(address); request.CookieContainer = CookieContainer; return request; } }
Add the following code:
Code Block language c# title Using WebClient using (var webclient = new CookieAwareWebClient()) { // Authenticate var reqparm = new System.Collections.Specialized.NameValueCollection(); reqparm.Add("username", "api"); reqparm.Add("password", "password"); byte[] responsebytes = webclient.UploadValues("http://api.jiwa.com.au/auth", "POST", reqparm); string responsebody = Encoding.UTF8.GetString(responsebytes); ServiceStack.AuthenticateResponse webClientAuthResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<ServiceStack.AuthenticateResponse>(responsebody); // Read a debtor responsebody = webclient.DownloadString("http://api.jiwa.com.au:80/debtor/10010000000061000000001V"); JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGetResponse webClientDebtorGetResponse = Newtonsoft.Json.JsonConvert.DeserializeObject<JiwaFinancials.Jiwa.JiwaServiceModel.DebtorGetResponse>(responsebody); }
Related articles
Filter by label (Content by label) | ||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
|
Page Properties | ||
---|---|---|
| ||
|