我怎样才能使这段代码正常工作
本文关键字:代码 常工作 工作 段代码 | 更新日期: 2023-09-27 18:04:15
所以我一直在学习如何使一个c#应用程序发送和接收参数与LAMP服务器最近,但我似乎已经撞墙,我需要一些帮助了解我做错了什么在这里。
这是一个简单的测试应用程序,它向php文件发送两个参数(login和password),并根据参数是否正确接收响应。
private void btEntrar_Click(object sender, EventArgs e)
{
String login, senha, postData, requestMethod = "POST", contentType = "application/x-www-form-urlencoded", responseFromServer = null;
String urlLogin = "http://192.168.1.107/knowledgems/accounts/login.php";
login = tbLogin.Text;
senha = tbSenha.Text;
postData = "param1=" + login + "¶m2=" + senha;
byte[] byteArray = Encoding.UTF8.GetBytes(postData);
WebRequest request = WebRequest.Create(urlLogin);
WebResponse response;
Stream dataStream;
StreamReader reader;
//Send request
request.Method = requestMethod;
request.ContentType = contentType;
request.ContentLength = byteArray.Length;
dataStream = request.GetRequestStream();
dataStream.Write(byteArray, 0, byteArray.Length);
dataStream.Close();
//Get response
response = request.GetResponse();
dataStream = response.GetResponseStream();
reader = new StreamReader(dataStream);
responseFromServer = reader.ReadToEnd();
reader.Close();
dataStream.Close();
response.Close();
if (responseFromServer.Equals("SUCCESS"))
MessageBox.Show("Login efetuado.");
else
MessageBox.Show("Login não efetuado." + responseFromServer);
} //btEntrar
虽然一切似乎都正确,我实际上可以从我的php文件中获得响应,但我无法执行末尾的验证函数
(if (responseFromServer.Equals("SUCCESS")))
即使显示的响应正是字符串"SUCCESS",我似乎无法将responseFromServer字符串与"SUCCESS"进行比较,以检查是否一切正常登录,因此它总是以读取else条件而告终。
以下我也张贴我的php文件。
<?php
require_once 'connection.php';
header('Content-Type: application/form-data');
class User {
private $db;
private $connection;
function __construct(){
$this->db = new DB_Connection();
$this->connection = $this->db->get_connection();
} //__construct
public function does_user_exist($username,$password){
$query = "SELECT * FROM users WHERE user_username = '$username' AND user_password = '$password'";
$result = mysqli_query($this->connection,$query);
if(mysqli_num_rows($result) > 0){
echo "SUCCESS";
} //if
else {
echo "ERRO&101";
} //else
mysqli_close($this->connection);
} //does_user_exist
} //class
$user = new User();
if (isset($_POST['param1'],$_POST['param2'])){
$username = $_POST['param1'];
$password = $_POST['param2'];
if(!empty($username) && !empty($password)){
//$encrypted_password = md5($password);
$user -> does_user_exist($username,$password);
}
else {
echo "ERRO&100";
} //else
} //if
?>
提前感谢您的时间,请帮忙!
编辑1:我的猜测是格式不太适合contentType,但我不能找出正确的方法来做它
SUCCESS是否有换行符?看看这是否有效:
if (responseFromServer.Trim().Equals("SUCCESS"))
{