我如何 return 从我的 Web API 中的方法到 main 的 HTTP 状态代码?

How do I return the HTTP Status Code from a method in my Web API to main?

我正在开发一个可以从现有网络执行一些方法的控制台应用程序 API。我希望控制台应用程序写入返回的状态代码,但我正在努力寻找有效的语法。

例如,这里有一个更新方法,除了网络响应之外,它目前正在正常工作。

Console.WriteLine("Please enter a valid order item number for the specific data you want to update:");
                    string oNum = Console.ReadLine();

    //more prompts for user to enter data to update

    ...

var update = _service.UpdateOrder(oNum, oProc, oProcDate, oComplete);
Console.WriteLine("Status code: {0}", (update.StatusCode));

我明白为什么我当前的状态代码响应不起作用。我已经尝试了很多其他的东西,但我现在只是被困住了。我错过了什么?

编辑

这里是_service.UpdateOrder引用的代码:

public List<Stream> UpdateOrder(string orderID, bool processing, DateTime procDate, bool Complete)
    {
        var request = new RestRequest(StreamUrl, Method.PUT)
        {
            RequestFormat = DataFormat.Json
        };

        request.AddParameter("OrderID", orderID);
        ...


        var response = _client.Execute<List<Stream>>(request);
        if (response.StatusCode == System.Net.HttpStatusCode.Created || response.StatusCode == System.Net.HttpStatusCode.OK)
            return response.Data;
        else
            throw new Exception("Invalid input. Table could not be updated.");

您遇到的问题是您正在从 UpdateOrder 方法中 returning stream

目前您只能在 UpdateOrder 方法中访问 StatusCode 属性,就像您现在这样:

if (response.StatusCode == System.Net.HttpStatusCode.Created)

如果您想从调用代码访问 StatusCode 属性,则需要从 UpdateOrder 访问 return IRestResponse,如下所示:

public IRestResponse UpdateOrder(string orderID, bool processing, DateTime procDate, bool Complete)
{
    var request = new RestRequest(StreamUrl, Method.PUT)
    {
        RequestFormat = DataFormat.Json
    };

    request.AddParameter("OrderID", orderID);
    ...


    var response = _client.Execute<List<Stream>>(request);
    if (response.StatusCode == System.Net.HttpStatusCode.Created || response.StatusCode == System.Net.HttpStatusCode.OK)
        return response;
    else
        throw new Exception("Invalid input. Table could not be updated.");
}

然后在您的调用代码中:

Console.WriteLine("Please enter a valid order item number for the specific data you want to update:");
                    string oNum = Console.ReadLine();

    //more prompts for user to enter data to update

    ...

var update = _service.UpdateOrder(oNum, oProc, oProcDate, oComplete);
Console.WriteLine("Status code: {0}", (update.StatusCode));
// You can access the List<Stream> from update.Data