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 HUAWEICLOUD_SDK_AK and HUAWEICLOUD_SDK_SK. signer.Key = Environment.GetEnvironmentVariable("HUAWEICLOUD_SDK_AK"); signer.Secret = Environment.GetEnvironmentVariable("HUAWEICLOUD_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:
1
HttpWebRequest 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.See the reply and handling status in My Cloud VOC.
For any further questions, feel free to contact us through the chatbot.
Chatbot