Tôi đang cố gắng thực hiện một chức năng Azure đơn giản để tìm hiểu về nó. Sẽ có 3 chức năng:Làm cách nào để chuyển các tham số bằng POST sang một hàm Azure?
- 1 chức năng để chèn hàng vào bảng cơ sở dữ liệu. Bảng này sẽ chứa ngày hiện tại và một tham số chuỗi được người dùng nhập và được truyền bởi GET.
- 1 chức năng tương tự như hàm trước, nhưng chuyển tham số bằng POST.
- 1 chức năng để đọc bảng và hiển thị nội dung của bảng.
Tôi đã có thể thực hiện việc đầu tiên và thứ ba. Nhưng tôi không thể chuyển tham số bằng POST. Tôi đã tìm kiếm các ví dụ nhưng tôi không thể chạy chúng với thành công. Ứng dụng khách là một Windows Forms.
Có ai có thể cho tôi xem ví dụ về cách chuyển các tham số bằng POST tới hàm và cách đọc chúng không?
Thank của trước
EDIT:
Dưới đây là đoạn code để vượt qua các thông số của GET (điều này đang làm việc tốt):
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<Error>(text);
MessageBox.Show(mensajeError.ExceptionMessage);
}
}
}
Và đây là đoạn code để đón nhận nó và làm chèn (điều này cũng đang hoạt động):
[FunctionName("sql1")]
public static async Task<HttpResponseMessage> 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 => 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<object>();
return name == req.CreateResponse(HttpStatusCode.OK, "Done");
}
catch (Exception ex)
{
HttpResponseMessage res = req.CreateErrorResponse(HttpStatusCode.InternalServerError, ex);
return res;
}
}
Điều tôi đang tìm là để t của mình bằng cách POST
Hãy gửi ví dụ chức năng của bạn cho đến nay. Bạn viết chúng bằng ngôn ngữ nào? Bạn có thể viết các hàm Azure trong JavaScript dựa vào Node.js, nhưng cũng C# cho ASP.NET: https://visualstudiomagazine.com/articles/2017/04/01/implementing-webhooks-azure-functions.aspx – Dai
Xin lỗi; Tôi đang sử dụng C# để mã các ứng dụng. Tôi đã thêm mã tôi đã thực hiện. – davidrgh