发送HTTP请求并与一个假设的MES系统进行对接案例。

发布于:2024-06-28 ⋅ 阅读:(40) ⋅ 点赞:(0)

假设我们有一个MES系统,它提供了一个RESTful API用于获取订单信息。API的URL是https://api.mes-system.com/orders/{orderId},其中{orderId}是一个占位符,需要替换为实际的订单ID。
以下是demo:

using System;  
using System.Net.Http;  
using System.Text;  
using System.Threading.Tasks;  
using Newtonsoft.Json; // 引入Json.NET库来处理JSON  
  
public class MesApiClient  
{  
    private readonly HttpClient _httpClient;  
    private readonly string _baseUrl = "https://api.mes-system.com/orders/";  
  
    public MesApiClient()  
    {  
        // 初始化HttpClient,这里可以根据需要配置HttpClientHandler等  
        _httpClient = new HttpClient();  
    }  
  
    public async Task<Order> GetOrderAsync(string orderId)  
    {  
        if (string.IsNullOrEmpty(orderId))  
        {  
            throw new ArgumentException("Order ID is required", nameof(orderId));  
        }  
  
        // 构建完整的URL  
        var url = _baseUrl + orderId;  
  
        // 发送GET请求  
        HttpResponseMessage response = await _httpClient.GetAsync(url);  
  
        // 确保请求成功  
        response.EnsureSuccessStatusCode();  
  
        // 读取响应内容  
        string responseBody = await response.Content.ReadAsStringAsync();  
  
        // 将JSON响应反序列化为Order对象  
        Order order = JsonConvert.DeserializeObject<Order>(responseBody);  
  
        // 返回Order对象  
        return order;  
    }  
}  
  
// 假设的Order类,用于反序列化JSON响应  
public class Order  
{  
    public string OrderId { get; set; }  
    public string CustomerName { get; set; }  
    public DateTime OrderDate { get; set; }  
    // 其他属性...  
}  
  
// 使用示例  
class Program  
{  
    static async Task Main(string[] args)  
    {  
        // 创建MES API客户端实例  
        var mesApiClient = new MesApiClient();  
  
        // 假设的订单ID  
        string orderId = "12345";  
  
        try  
        {  
            // 调用GetOrderAsync方法来获取订单信息  
            Order order = await mesApiClient.GetOrderAsync(orderId);  
  
            // 输出订单信息  
            Console.WriteLine($"Order ID: {order.OrderId}, Customer: {order.CustomerName}, Order Date: {order.OrderDate}");  
        }  
        catch (Exception ex)  
        {  
            // 处理异常  
            Console.WriteLine("An error occurred: " + ex.Message);  
        }  
    }  
}

网站公告

今日签到

点亮在社区的每一天
去签到