Я создаю приложение C#
, которому необходимо обратиться к веб-странице (в PHP
), чтобы запросить проверку данных в базе данных. Данные передаются на страницу PHP
через параметры HTTP в файле 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-код возвращаемой страницы.
Я хотел бы знать, как я могу получить ответ как один или несколько из них (все, что возможно):
- Одно значение
- Коллекция значений
- Что-то, из чего я могу надежно извлечь значение