Как вызвать метод POST из API, используя HttpClient?

Я пытаюсь использовать класс HttpClient для вызова метода POST из моего API, который должен добавить информацию о сервере в БД.

То, как я пытаюсь это назвать, ниже. Но когда я делаю шаг для его отладки, он проходит через мой оператор if для response.IsSuccessStatusCode.

public static async Task<Server> PostServer(Server server)
    {
        using (var client = new HttpClient())
        {
            client.BaseAddress = new Uri("http://localhost:50489/");
            client.DefaultRequestHeaders.Accept.Clear();
            client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

            StringContent content = new StringContent(JsonConvert.SerializeObject(server));
            // HTTP POST
            HttpResponseMessage response = await client.PostAsync("api/Server/", content);
            if (response.IsSuccessStatusCode)
            {
                string data = await response.Content.ReadAsStringAsync();
                server = JsonConvert.DeserializeObject<Server>(data);
            }
        }
        return server;
    }

Также вот метод POST в моем API ниже, он был автоматически сгенерирован в VS.

// POST: api/Servers
    [ResponseType(typeof(Server))]
    public async Task<IHttpActionResult> PostServer(Server server)
    {
        if (!ModelState.IsValid)
        {
            return BadRequest(ModelState);
        }

        db.Servers.Add(server);
        await db.SaveChangesAsync();

        return CreatedAtRoute("DefaultApi", new { id = server.Server_ID }, server);
    }

0 ответов

Другие вопросы по тегам