C#
Scenarios
To use C# to call an API through App authentication, obtain the C# SDK, open the project file in the SDK, and then call the API by referring to the API calling example.
Prerequisites
- You have obtained API calling information. For details, see Preparations.
- You have installed the C# development environment. For details, see Preparations.
Obtaining the SDK
Old version: Log in to the ROMA Connect console, choose API Connect > API Calling > SDKs, and download the SDK.
New version: Log in to the ROMA Connect console, choose API Connect > Credentials > SDKs, and download the SDK.
The following shows the directory structure after the decompression.
|
Name |
Description |
|---|---|
|
apigateway-signature\Signer.cs |
SDK code |
|
apigateway-signature\HttpEncoder.cs |
|
|
sdk-request\Program.cs |
Sample code for signing requests |
|
backend-signature\ |
Sample project for backend signing |
|
csharp.sln |
Project file |
|
licenses\license-referencesource |
Third-party licenses |
Opening the Sample Project
Double-click csharp.sln in the SDK package to open the project. The project contains the following:
- apigateway-signature: Shared library that implements the signature algorithm. It can be used in the .Net Framework and .Net Core projects.
- backend-signature: Example of a backend service signature.
- sdk-request: Example of invoking the signature algorithm. Modify the parameters as required. For details about the sample code, see API Calling Example.
API Calling Example
- Import the SDK to the project.
using APIGATEWAY_SDK;
- Generate a signer and enter the key and secret of the authorized credential. For details about how to obtain the information, see Obtaining API Calling Information.
Signer signer = new Signer(); // Directly writing AK/SK in code is risky. For security, encrypt your AK/SK and store them in the configuration file or environment variables. // In this example, the AK/SK are stored in environment variables for identity authentication. Before running this example, set environment variables CLOUD_SDK_AK and CLOUD_SDK_SK. signer.Key = Environment.GetEnvironmentVariable("CLOUD_SDK_AK"); signer.Secret = Environment.GetEnvironmentVariable("CLOUD_SDK_SK"); - Generate a request, and specify the method, request URL, and body. For details about how to obtain the information, see Obtaining API Calling Information.
HttpRequest r = new HttpRequest("POST", new Uri("https://c967a237-cd6c-470e-906f-a8655461897e.apigw.exampleRegion.com/app1?query=value")); r.body = "{\"a\":1}"; - Add the x-stage header to the request to specify the environment. Add other headers to sign as required.
r.headers.Add("x-stage", "RELEASE"); - Execute the following function to generate HttpWebRequest, and add the X-Sdk-Date and Authorization headers for signing the request:
1HttpWebRequest req = signer.Sign(r);
- If the subdomain name allocated by the system is used to access the API of HTTPS requests, ignore the certificate verification. Otherwise, skip this step.
System.Net.ServicePointManager.ServerCertificateValidationCallback = new System.Net.Security.RemoteCertificateValidationCallback(delegate { return true; }); - Access the API and view the access result.
var writer = new StreamWriter(req.GetRequestStream()); writer.Write(r.body); writer.Flush(); HttpWebResponse resp = (HttpWebResponse)req.GetResponse(); var reader = newStreamReader(resp.GetResponseStream()); Console.WriteLine(reader.ReadToEnd());
Feedback
Was this page helpful?
Provide feedbackThank you very much for your feedback. We will continue working to improve the documentation.