c# 带参数的http post 数据并保存到mysql

标签 c# php mysql post

我在 C# 应用程序中使用这段代码来发布数据:

    void postdata()
    {
        WebClient wc = new WebClient();
        var URI = new Uri("http://my-real-address.com/test.php");
        string myParameter = "?parameter=test";
        wc.Headers["Content-Type"] = "application/x-www-form-urlencoded";
        wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc__UploadStringCompleted);
        wc.UploadStringAsync(URI, myParameter);
    }

    void wc__UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
    {
        try
        {
            MessageBox.Show(e.Result);
        }
        catch (Exception exc)
        {
            MessageBox.Show(exc.ToString());
        }
    }

和test.php的内容:

<?php
$save = $_GET['parameter'];

//db auth settings
$dbhost = 'localhost';
$dbuser = 'user';
$dbpass = 'password';

if ($save != "")
{
    $conn = mysql_connect($dbhost, $dbuser, $dbpass);
    if(! $conn )
    {
        die('Could not connect: ' . mysql_error());
    }
    $sql = "INSERT INTO users (parameter) VALUES ('$save')";
    mysql_select_db('database');
    $retval = mysql_query( $sql, $conn );
    if(! $retval )
    {
        die( mysql_error() );
    }
    mysql_close($conn);
}
?>

我不知道为什么,但 c# 应用程序只是打开 MessageBox 而没有任何文本,数据也没有存储在 mysql 数据库中。但是如果我在网络浏览器中使用参数打开相同的 url,一切都很好。

我不确定是否: string myParameter = "?parameter=test" 是正确的,所以我尝试将其更改为: string myParameter = "参数=测试" 但我得到了相同的结果。

有什么想法吗?

最佳答案

您传递的是参数,而不是 uri 扩展。所以去掉问号。

void postdata()
    {
        WebClient wc = new WebClient();
        var URI = new Uri("http://my-real-address.com/test.php");
        //string myParameter = "?parameter=test";
        string myParameter = "parameter=test";    // <---------- !
        wc.Headers["Content-Type"] = "application/x-www-form-urlencoded";
        wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc__UploadStringCompleted);
        wc.UploadStringAsync(URI, myParameter);
    }

我觉得其他一切都很好。

关于c# 带参数的http post 数据并保存到mysql,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31288538/

相关文章:

php - 如何成功地将 Zend Framework 1 应用程序从 CloudControl Luigi 迁移到 Pinky 堆栈?

c# - 打开 OLEDB 连接到 Excel 文件时 Windows 服务挂起

c# - MVVM应用程序中的工具箱设计

php - 简化巨大的 if 语句 - 设计模式?

php - 从 PHP/Javascript 编码的网站/页面打开 iphone 应用程序

php - 选择数据库中尚未存在的不同值

php - 如何使用 Php 将我的 Android 应用程序连接到 Amazon RDS MySQL 数据库?

python - 如何添加与 MySql 中现有列相关的新列?

c# - 按对象属性以外的其他内容对对象列表进行分组

c# - 在 asp.net mvc 中检查上传的 Excel 文件中的非法字符