jim1972 Ответов: 1

Http глаголы - PUT, PATCH, DELETE не работают с клиентом


Привет,
Я создал а ASP.Net проект API Core 2.0.
Когда я запускаю api от postman , он работает нормально.
Но когда я попытался запустить приложение WinForm, оно работает только с операциями Get и Post. Удалить, поставить и исправить не работает. Ошибка приходит-это "метод не разрешен".
Я погуглил и попытался добавить эти глаголы в RequestFiltering IIS. Но все же она сохраняется.
Я запускаю это в локальной машине. Может кто-то знает, как это решить, оценил.

Вот мой фрагмент кода:-

private void cmdDelete_Click(object sender, EventArgs e)
        {
            HttpClient client = new HttpClient();
            client.BaseAddress = new Uri("http://www.test.com/");
            client.DefaultRequestHeaders.Accept.Add(new System.Net.Http.Headers.MediaTypeWithQualityHeaderValue("Application/json"));

            var uri = "api/customers/" + txtId.Text.Trim();
            HttpResponseMessage response = client.DeleteAsync(uri).Result;
            if (response.IsSuccessStatusCode)
            {
                MessageBox.Show ("Success");
            }
            else
                MessageBox.Show ("Error : " + response.StatusCode + " : " + response.ReasonPhrase);

        }

        public async Task test()
        {
            Customer cust = new Customer();
            int custId = Convert.ToInt32(txtId.Text);
            await cust.DeleteCustomerDetails(custId);
        }


NB : пожалуйста, обратите внимание, что API работает нормально от почтальона.

С уважением
Джим

Что я уже пробовал:

Я погуглил и попробовал в IIS должным образом добавить httpverbs в RequestFiltering. Но это само по себе не сработало.

1 Ответов

Рейтинг:
1

Bryian Tan

Возможно, Вам потребуется включить функцию Enable Cross-Origin Requests (CORS) в приложении

Включить запросы перекрестного происхождения (CORS) в ASP.NET ядро | Microsoft Docs[^]


jim1972

Пробовал, но эффект тот же.

Bryian Tan

для целей тестирования, опробовать его AllowAnyHeader, AllowAnyMethod, AllowAnyOrigin и убедитесь в том, чтобы включить политику в настроить способ

jim1972

Перепробовал все это. но все то же самое.

Richard Deeming

CORS применяется только к запросам из Javascript. Запросы от C# не будут затронуты.