首页 > 解决方案 > 向服务器发送 POST 请求后,回显消息为空

问题描述

代码:

private async Task httpAsync()
{

    var data = new StringContent("1254", Encoding.UTF8, "application/x-www-form-urlencoded");

    var url = "https://mywebsite.com/insert.php";
    using var client = new HttpClient();

    var response = await client.PostAsync(url, data);

    string result = response.Content.ReadAsStringAsync().Result;
    textBox2.Text = result;
}

private async void button3_AsyncClick(object sender, EventArgs e)
{
    await httpAsync();
}

我的 insert.php 脚本:

<?php

 $postdata = $_GET['data'];

 echo $postdata;
?>

我得到的错误: 注意:未定义的索引:/storage/ssd3/643/15098643/public_html/insert.php 中的数据

我还是新手,有人可以帮助我解决这个错误。我正在尝试回显发送到服务器的“1254”以进行测试。

标签: c#phpwinforms

解决方案


错误是关于 PHP 在请求中没有找到名为“data”的参数。

首先,您将POST请求与GET请求混为一谈。看起来您的 C# 脚本正在向您的 PHP 脚本发布“1254”,但在您的 PHP 脚本中,您正在寻找 URL 中的 GET 参数。所以要么:

  • 更改您的 C# 脚本以发送GET请求或
  • POST使用 $_POST[param name]更改您的 PHP 脚本以检查请求

其次,您的 PHP 脚本正在寻找一个名为“data”的参数,但您的所有 C# 脚本发送的都是一个值为“1254”的字符串

查看这篇文章,了解如何POST在 C# 中使用参数发送请求。


推荐阅读