HttpClient ODPS connection based on json response like success how to integrate with ThomsonReuters

How to connect HttpClient class of opendac like below class to RFA API class

public class HttpClient

{

public static void Main(string[] args)

{

string url = "";


while (true)

{

string curLine = "";

string urlError = "Please enter a valid URL";

Console.Write("Enter ODPS URL > ");

try

{

curLine = Console.ReadLine().Trim();

}

catch (IOException)

{

Environment.Exit(0);

}

if (curLine.Length < 8 || !curLine.StartsWith("http://"))

{

Console.WriteLine(urlError);

continue;

}

if (!curLine.EndsWith("/"))

{

url = curLine + "/";

}

else

{

url = curLine;

}

break;

}


bool usePersistent = true;


while (true)

{

string curLine = "";

string inputError = "Please enter only a character from y, Y, n, and N";

Console.Write("Use persistent connection (y, n) > ");

try

{

curLine = Console.ReadLine().Trim();

}

catch (IOException)

{

Environment.Exit(0);

}

if (curLine.Equals("n", StringComparison.OrdinalIgnoreCase))

{

usePersistent = false;

}

else if (!curLine.Equals("y", StringComparison.OrdinalIgnoreCase))

{

Console.WriteLine(inputError);

continue;

}

break;

}


if (!usePersistent)

{

ServicePointManager.Expect100Continue = false;

ServicePointManager.DefaultConnectionLimit = 1000; // You can adjust this value based on your requirement

ServicePointManager.MaxServicePoints = 1000; // You can adjust this value based on your requirement

ServicePointManager.UseNagleAlgorithm = false;

ServicePointManager.EnableDnsRoundRobin = true;

ServicePointManager.SetTcpKeepAlive(false, 0, 0);

}


while (true)

{

Console.Write("ODPS command > ");

string curLine = Console.ReadLine().Trim();

if (curLine.Length == 0)

{

continue;

}

if (curLine.StartsWith("q", StringComparison.OrdinalIgnoreCase))

{

break;

}

string sendUrl = url + curLine;

try

{

HttpWebRequest request = (HttpWebRequest)WebRequest.Create(sendUrl);

HttpWebResponse response = (HttpWebResponse)request.GetResponse();

using (Stream dataStream = response.GetResponseStream())

{

StreamReader reader = new StreamReader(dataStream);

string responseFromServer = reader.ReadToEnd();

Console.WriteLine(responseFromServer);

}

response.Close();

}

catch (WebException e)

{

if (e.Status == WebExceptionStatus.ProtocolError)

{

Console.WriteLine("Error contacting ODPS: " + ((HttpWebResponse)e.Response).StatusCode);

}

else

{

Console.WriteLine("Error contacting ODPS: " + e.Message);

}

}

catch (Exception e)

{

Console.WriteLine("Error contacting ODPS: " + e.Message);

}

}

}

}


Best Answer

  • Gurpreet
    Answer ✓

    Hi @rakeshgowdacs,

    You can use the OpenDACS API instead of ODPS to integrate with RFA. Depending on your use case, much of the user DACS entitlement checking can also be done automatically by the RFA/RTMDS. Please see this article to learn more about the use of OpenDACS API which is build on top of RFA SDK package.