【问题标题】:Calling WebApi from Console Application is Failing从控制台应用程序调用 WebApi 失败
【发布时间】:2020-06-23 00:49:04
【问题描述】:

我有一个在 Azure 上运行并通过 Postman 进行全面测试的 WebApi

此 API 需要 2 个标头

Content-Type: application/json
AppToken: {{AppToken}}

我想从控制台应用程序调用此 API,我认为这是一个非常简单的过程。这是我的主程序

static void Main(string[] args)
   {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("BASE_ADDRESS/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Add("AppToken", "MY_APP_TOKEN_VALUE");


        // Call API to create the registration
        CreateRegistration(client).Wait();
    }
public static async Task CreateRegistration(HttpClient client)
        {
            using (client)
            {
                try
                {
                    Registration reg1 = new Registration { email = "test@ssdafsds.com", clientId = 2342342, registrationId = 23423, ProgramId = 13 };
                    HttpResponseMessage responseMessage = await client.PostAsJsonAsync("api/auth/register", reg1);

                    responseMessage.EnsureSuccessStatusCode();
                    // Handle success
                }
                catch (Exception ex)
                {
                    // Handle failure
                    Console.WriteLine(ex.StackTrace);
                }
            }
        }

我收到一个内部服务器错误,作为“原因短语”,状态码为 500。我不确定为什么会收到此错误。我应该得到 201 Created like postman

知道如何解决这个问题吗?

【问题讨论】:

  • 500 是来自服务器的通用响应,表明内部发生了一些它没有预料到的事情。这可能是你的错,或者他们的错,一个糟糕的设计产品,或者任何数量的东西。如果邮递员工作,我建议使用提琴手并比较两个请求并使用手头的所有信息调试问题。
  • Postman 可以为您的语言生成代码并尝试...如果可行,只需比较代码
  • @Clystian 我没有想到这一点。这对我有用。谢谢!
  • 您是否尝试在 EnsureSuccessStatusCode 之前读取 responseMessage 内容或显示什么异常消息?
  • 它给了我一个一般异常“内部服务器错误”

标签: c# asp.net asp.net-web-api


【解决方案1】:

我传递了一个我的数据库中实际上没有的程序 id 导致 FK_Reference 失败并导致此问题,因此我犯了一个错误。谢谢大家的帮助。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-03-24
    • 1970-01-01
    • 2013-12-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多