0

Я написал веб-app.Net asp.Net, в котором я написал put, post, get и delete для выполнения crud в базе данных Sql azure. База данных и API работают на Microsoft Azure. Я успешно могу вызвать контроллер GET и получить данные в браузере. Когда я пытаюсь отправить жестко закодированные данные к нему через консольное приложение, он ничего не делает (ни дает ошибку, ни исключение). Ниже контроллер Web API:Не удалось отправить данные в API Asp.Net Web, размещенный на Microsoft Azure

public HttpResponseMessage Post([FromBody] Product prod) 
    { 
     try 
     { 
      se.Products.Add(prod); 
      se.SaveChanges(); 

      var message = Request.CreateResponse(HttpStatusCode.Created, prod); 
      message.Headers.Location = new Uri(Request.RequestUri + prod.Product_ID.ToString()); 
      return message; 
     } 
     catch (Exception ex) 
     { 
      return Request.CreateErrorResponse(HttpStatusCode.BadRequest, ex); 
     } 
    } 

Method from the client console app to send data is shown in this picture

Я попытался осмотреть этот метод, поставив точку останова в response.Response не получил ничего в нем, но показал плохой запрос. Here is the screenshot to it.

Просьба помочь мне, как успешно отправлять данные в базу данных через веб-api, размещенную на лазурной. Спасибо :)

+0

GermanCH, отличная идея. Али, первый шаг, чтобы построить запрос HTTP POST с помощью почтальона или Fiddler4, снимающей вашу конечную точку успешно. Если вы не в состоянии сделать это, пожалуйста, разместите свой класс продукта. После того как вы успешно создали запрос с использованием одного из этих инструментов, вы можете проверить запрос, который ваш вызывающий метод посылает и видит разницу. –

+0

Спасибо другу! Должен ли я отправлять запрос на отправку от скрипача на мой фактический адрес API, где он размещался ИЛИ на localhost ??? Я попробовал его для localhost, где он отлично работает и публикует данные в локальной базе данных. –

+0

Я попытался отправить данные в адрес, где находится API, но получил тот же ответ, что и от клиентского приложения консоли i.e, ошибка: 400 Bad Request. –

ответ

0

Вы получаете ответ «Плохой запрос», это означает, что с данными, которые вы отправляете в тело запроса, что-то не так. Проверьте, не отправляются ли все атрибуты с нулевым значением.

Кроме того, проверьте конфигурацию заголовка «Content-type» in this answer, что может вызвать проблемы при отправке данных.

Я бы попытался использовать какой-либо другой клиент REST, как почтальон, для проверки потребностей запроса.

К сожалению, чтобы отправить это как ответ, я хотел бы просто комментарий, но у меня нет никаких привилегий :(

+0

Я пробовал обе вещи, но все напрасно :(Любое другое решение, пожалуйста. –

0

попытаться передать параметр как JObject типа данных в методе и приведение в ваш нужный объект/класс. JSON. stringify параметр перед отправкой в ​​контроллер

[HttpPost] 
     public HttpResponseMessage Post([FromBody] JObject prod) {...}