gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-11-29 03:30:33 24 4
gpt4 key购买 nike

我在 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/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com