C#使用Visual Studio 2013与PHP交互,并制作Windows 8.1通用应用程序
本文关键字:Windows 1通 应用程序 Studio Visual 使用 2013 交互 PHP | 更新日期: 2023-09-27 18:13:01
好的。所以这个问题可能有点愚蠢,但由于我搜索了又搜索,还没有找到一个有效的解决方案,我想我可以在这里问。
我已经建立了一个简单的PHP页面,它从url myusername和mypassword中获得2个参数。然后根据给定的用户名和密码从数据库中获取3个int值。
(通过键入带有参数的url来测试它,PHP脚本本身也能工作。甚至让它在页面上回显3个整数来确保(
现在来看有问题的部分。我正在使用Visual Studio 2013,并制作一个适用于Windows 8.1的通用应用程序。而且我似乎无法让httpClient从那里获取任何数据。通过浏览论坛,我一直找不到任何有效的东西。也不可能测试所有,因为大多数都使用GetResponse((,这在VS2013中不起作用。由于我对C#编码还很陌生,所以在我所做的几十个测试中,它可能很简单,只是出现了一个小错误。
制作了一个包含2个文本字段的登录屏幕。我可以以"www.something.com/something/somephp?myusername=UserNameGiven&mypassword=PasswordGiven"的形式构建url
如果有人能给出一个简单的解决方案,告诉我如何从地址打开的页面中获得结果(只通过echo显示3个整数…如果C#代码不需要这些整数,也可以删除它们。如果要求不太高,字符串格式可能是理想的…
Ok为您给SnyderCode的代码制作了一个新的GetScores异步方法。在登录按钮上扔那个Task至少需要我目前所不知道的编码。
静态结果。"文本"字段保持默认状态,不显示任何更改。
将LoginButton更改回async而不执行任务。
我的代码从c#的状态是atm是
private async void LoginButton_Click(object sender, RoutedEventArgs e)
{
string UserName, Password;
UserName = UserNameFeedField.Text.ToString();
Password = PasswordFeedField.Text.ToString();
string url = "something.com/something/GetScores.php?myusername=" + UserName + "&mypassword=" + Password;
URL.Text = url;
// GetScores(url);
using (Windows.Web.Http.HttpClient client = new Windows.Web.Http.HttpClient())
{
string contentOFPage = await client.GetStringAsync(new Uri(url));
Results.Text = contentOFPage;
}
}
如果这里重要的是PHP代码部分
<?php
$host="db_host"; // Host name
$username="db_user"; // Mysql username
$password="db_pswd"; // Mysql password
$db_name="db_name"; // Database name
$tbl_name="db_table"; // Table name
// Connect to server and select databse.
mysql_connect("$host", "$username", "$password")or die("cannot connect");
mysql_select_db("$db_name")or die("cannot select DB");
// username and password sent from form
$myusername=$_GET["myusername"];
$mypassword=$_GET["mypassword"];
// To protect MySQL injection (more detail about MySQL injection )
$myusername = stripslashes($myusername);
$mypassword = stripslashes($mypassword);
$myusername = mysql_real_escape_string($myusername);
$mypassword = mysql_real_escape_string($mypassword);
$sql="SELECT field1 as LowB, field2 as LongB, field3 as Bs FROM $tbl_name WHERE UserID='$myusername' and UserPSWD='$mypassword'";
$result=mysql_query($sql);
// this part only shows the variables gotten from the query and echoes those on the page
// was only made to test that the PHP works.
while ($row = mysql_fetch_assoc($result)) {
echo ($row["LowB"] . " " . $row["LongB"] . " " . $row["Bs"]);
}
?>
首先,异步方法总是需要返回一个任务。其余:
private async void LoginButton_Click(object sender, RoutedEventArgs e)
{
string UserName = UserNameFeedField.Text.ToString();
string Password = PasswordFeedField.Text.ToString();
string url = "www.something.com/something/some.php?myusername=" + UserName + "&mypassword=" + Password;
using (Windows.Web.Http.HttpClient client = new Windows.Web.Http.HttpClient())
{
string contentOfPage = await client.GetStringAsync(new Uri(url));
//Do something with the contentOfPage
}
}