我正在构建一个C#
应用程序,该应用程序需要调用网页 (in PHP
) 以请求对数据库中的数据执行验证。数据PHP
通过URL
.
我想从对我的 PHP 网页的调用中检索单个响应值。在这个具体的例子中,我只需要一个Boolean
值。然而,我学会如何请求任何东西,甚至是一个请求中的多个值(如果可能的话)似乎是谨慎的。
这是我正在调用的 PHP 页面的简化版本:
<?php
$type = $_GET['type'];
$accessid = $_GET['accessid'];
$license = $_GET['license'];
$machine = $_GET['machine'];
$osver = $_GET['osver'];
$ip = getenv("REMOTE_ADDR");
$query = "select * from validatetable where licnum = '" . $license . "'";
if ($result = db_doquery($query))
{
if (db_dofetcharray($result))
{
$query = "update validatetable set lastdate = CURRENT_TIMESTAMP, lastmachine = '" . $machine . "', accessip = '" . $ip . "', osver = '" . $osver . "' where type = '" . $type . "' and licnum = '" . $license . "'";
db_doquery($query);
}
else
{
$query = "insert into validatetable set type = '" . $type . "', name = '<unknown>', licnum = '" . $license . "', accessid = '" . $accessid . "', lastdate = CURRENT_TIMESTAMP, machine = '" . $machine . "', accessip = '" . $ip . "', osver = '" . $osver . "'";
db_doquery($query);
}
}
?>
此PHP
页面只是接收值并在数据库表中插入或更新记录。这将继续,但我想从另一个表中提取信息,与提供的内容进行比较,并返回验证指示符为Boolean
.
这是我当前在 C# 应用程序中的请求代码:
String webUrl = String.Format("http://www.mywebsite.com/validate.php?type=type&accessid={0}&license={1}&machine={2}&osver={3}.{4}", accessID, licNum, clientMachineName, Environment.OSVersion.Version.Major, Environment.OSVersion.Version.Minor);
HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(webUrl);
request.Credentials = CredentialCache.DefaultCredentials;
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
if (response.StatusCode == HttpStatusCode.OK)
{
using (Stream dataStream = response.GetResponseStream())
{
using (StreamReader reader = new StreamReader(dataStream, Encoding.UTF8))
{
String theResponse = reader.ReadToEnd(); //<--- THIS LINE
}
}
}
response.Close();
注释行导致包含返回页面的完整 HTML 的变量。
我想知道的是如何将响应作为其中一项或多项(尽可能)获得:
- 单个值
- 价值观的集合
- 我可以可靠地从中提取价值的东西