title: How to pass parameters by POST to an Azure function?
body: <p>I'm trying to do a simple Azure Function to learn about it. There will be 3 functions: </p>
  
  <ul>
  <li>1 function to insert a row into a table of a database. This table will contain the current date and a string parameters typed by the user and passed by GET.</li>
  <li>1 function similar to the previous one, but passing the parameter by POST.</li>
  <li>1 function to read the table and show its content.</li>
  </ul>
  
  <p>I've been able to do the first and the third ones. But I can't pass the parameter by POST. I've looked for examples but I couldn't run them with success. The client app is a Windows Forms one.</p>
  
  <p>Could anyone show me an example anout how to pass parameters by POST to the function and how to read them?</p>
  
  <p>Thank's in advance</p>
  
  <p>EDIT:</p>
  
  <p>Here's the code to pass the parameters by GET (this is working fine):</p>
  
  <pre><code>private void button2_Click(object sender, EventArgs e)
  {
      string cadena = lsql1.Text + "?notas=" + tNotas.Text;
  
      try
      {
          HttpWebRequest req = (HttpWebRequest)WebRequest.Create(cadena);
          HttpWebResponse res = (HttpWebResponse)req.GetResponse();
  
          if (res.StatusCode == HttpStatusCode.OK)
          {
              MessageBox.Show("Grabado");
          }
          else
          {
              MessageBox.Show(res.StatusDescription);
          }
      }catch (WebException ex)
      {
          using (Stream s = ex.Response.GetResponseStream())
          {
              StreamReader sr = new StreamReader(s);
              string text = sr.ReadToEnd();
              text = text.Substring(1, text.Length - 2);
              sr.Close();
              text = text.Replace("\\", "");
              text = "{" + text + "}";
              Error mensajeError = JsonConvert.DeserializeObject&lt;Error&gt;(text);
  
              MessageBox.Show(mensajeError.ExceptionMessage);
          }
  
      }
  }
  </code></pre>
  
  <p>And here's the code to receive it and do the insert (this is working too):</p>
  
  <pre><code>[FunctionName("sql1")]
  public static async Task&lt;HttpResponseMessage&gt; Run(HttpRequestMessage req, TraceWriter log)
  {
      try
      {
          log.Info("C# HTTP trigger function processed a request.");
  
          var cnnString = "Server=SERVIDOR;Database=base_prueba;User ID =azure;Password=0000;Trusted_Connection=False;Encrypt=False;";
  
          using (SqlConnection connection = new SqlConnection(cnnString))
          {
              connection.Open();
              SqlCommand cmd = connection.CreateCommand();
  
              DateTime fecha = DateTime.Today;
  
              string notas = req.GetQueryNameValuePairs()
              .FirstOrDefault(q =&gt; string.Compare(q.Key, "notas", true) == 0)
              .Value;
  
              // insert a log to the database
              cmd.CommandText = "INSERT INTO Prueba_Azure (fecha, notas) VALUES ('" + fecha.ToString() + "', '" + notas + "')";
              cmd.ExecuteNonQuery();
          }
  
          // Get request body
          dynamic data = await req.Content.ReadAsAsync&lt;object&gt;();
  
          return name == req.CreateResponse(HttpStatusCode.OK, "Done");
      }
      catch (Exception ex)
      {
          HttpResponseMessage res = req.CreateErrorResponse(HttpStatusCode.InternalServerError, ex);
          return res;
      }
  }
  </code></pre>
  
  <p>What I'm looking for is to to this by POST</p>