title: How can i call rabbitMq get message from asp.net Webapi?
body: <p><a href="https://i.stack.imgur.com/fePlm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/fePlm.png" alt="enter image description here"></a>My question is simple. I wanna use rabbitmq to make message queue by using asp.net webapi. On the other hand, GetAllQueues not returning any message. Message is always null. Below code perfect in console application but message always null when i run below post :</p>
  
  <p><a href="http://localhost:53301/api/CustomerPipline/?queueName=test123" rel="nofollow noreferrer">http://localhost:53301/api/CustomerPipline/?queueName=test123</a></p>
  
  <p><a href="https://i.stack.imgur.com/fePlm.png" rel="nofollow noreferrer"><img src="https://i.stack.imgur.com/9TvHA.png" alt="enter image description here"></a></p>
  
  <pre><code>
  using Newtonsoft.Json;
  using System;
  using System.Collections.Generic;
  using System.Linq;
  using System.Net;
  using System.Net.Http;
  using System.Web.Http;
  using RabbitMQ.Client;
  using System.Text;
  using RabbitMQ.Client.Events;
  using System.Diagnostics;
  using RabbitMQ.Client.Exceptions;
  
  namespace Atom.Mqpipline.Controllers
  {
      public class CustomerPiplineController : ApiController
      {
          private static readonly string _queueName = "test123";
  
  
          [HttpPost]
          public HttpResponseMessage AddQueue(int customerId)
          {
  
             var  publisher = new Publisher(_queueName, "Hello RabbitMQ World!");
              var resp = Request.CreateResponse(HttpStatusCode.OK, JsonConvert.SerializeObject("OK"));
  
              return resp;
          }
          [HttpGet]
          public HttpResponseMessage GetAllQueues(string queueName)
          {
              var consumer = new Consumer(queueName);
              var resp = Request.CreateResponse(HttpStatusCode.OK, JsonConvert.SerializeObject(consumer.Message));
              return resp;
          }
      }
  
  }
  
  public class RabbitMQService
  {
      private readonly string _hostName = "localhost";
  
      public IConnection GetRabbitMQConnection()
      {
          ConnectionFactory connectionFactory = new ConnectionFactory()
          {
              HostName = _hostName
          };
  
          return connectionFactory.CreateConnection();
      }
  }
  public class Publisher
  {
      private readonly RabbitMQService _rabbitMQService;
  
      public Publisher(string queueName, string message)
      {
          _rabbitMQService = new RabbitMQService();
  
          using (var connection = _rabbitMQService.GetRabbitMQConnection())
          {
              using (var channel = connection.CreateModel())
              {
                  channel.QueueDeclare(queueName, false, false, false, null);
                  channel.BasicPublish("", queueName, null, Encoding.UTF8.GetBytes(message));
              }
          }
      }
  }
  
  public class Consumer
  {
      private readonly RabbitMQService _rabbitMQService;
      public string Message { get; set; }
      public Consumer(string queueName)
      {
  
          _rabbitMQService = new RabbitMQService();
  
          using (var connection = _rabbitMQService.GetRabbitMQConnection())
          {
              using (var channel = connection.CreateModel())
              {
                  var consumer = new EventingBasicConsumer(channel);
                  // Received event'i sürekli listen modunda olacaktır.
                  consumer.Received += (model, ea) =>
                  {
                      var body = ea.Body;
                      var message = Encoding.UTF8.GetString(body);
                      Debug.WriteLine(message);
                      Message = message;
                  };
  
                  channel.BasicConsume(queueName, true, consumer);
              }
          }
      }
  }
  
  
  </code></pre>