C# 如何测试UnityWebRequest的结果?

C# 如何测试UnityWebRequest的结果?,c#,php,unity3d,httprequest,C#,Php,Unity3d,Httprequest,我正在尝试制作一个Unity游戏的原型。我有一个MySQL数据库,我可以在其中注册用户 因此,我遇到的问题是,每当我填写错误的字段时,都会收到错误消息。就像在发送SQL请求然后加载新场景之前需要匹配密码的两个字段一样 我已经尝试了if(www.downloadHandler.text==“”)但是如果我没有填写infos字段,我的测试通过了,因为它返回“” 这是我的c#文件: 这是我的php文件: <?php $SRVusername="root"; $SRVpassword=""; $S

我正在尝试制作一个Unity游戏的原型。我有一个MySQL数据库,我可以在其中注册用户

因此,我遇到的问题是,每当我填写错误的字段时,都会收到错误消息。就像在发送SQL请求然后加载新场景之前需要匹配密码的两个字段一样

我已经尝试了
if(www.downloadHandler.text==“”)
但是如果我没有填写infos字段,我的测试通过了,因为它返回
“”

这是我的c#文件:

这是我的php文件:

<?php
$SRVusername="root";
$SRVpassword="";
$SRVadress="localhost";
$SRVdatabase="envapp";

$connexion=mysqli_connect($SRVadress,$SRVusername,$SRVpassword,$SRVdatabase);

if(mysqli_connect_errno())
{
    echo "1: Erreur de connexion";
    exit();
}

if(isset($_POST["Identifiant"]) && isset($_POST["MotPasse"]) && isset($_POST["Email"]) && isset($_POST["NoTel"]) && isset($_POST["MotPasseConfi"]))
{
    $Identifiant = $_POST["Identifiant"];
    $MotPasse = $_POST["MotPasse"];
    $Email = $_POST["Email"];
    $NoTel = $_POST["NoTel"];
    $MotPasseConfi = $_POST["MotPasseConfi"];

    if($MotPasse == $MotPasseConfi)
    {
            $checkquery = "INSERT INTO `joueurs` (`ID_JOUEUR`, `PSEUDO`, `PASSWORD`, `EMAIL`, `NUMTEL`) VALUES (NULL, '".$Identifiant."', '".$MotPasse."', '".$Email."', '".$NoTel."');";

            $checkstate = mysqli_query($connexion,$checkquery) or die("4: Erreur lors de la requête " .$checkquery);
    }
    else
    {
        echo "3: Erreur Les mots de passe ne correspondent pas !";
        exit();
    }
}
else
{
    echo "2: Erreur Les POST ne sont pas passés !";
    exit();
}
mysqli_close($connexion);
?>

我建议使用,例如,设置正确的http响应代码(如
500
-请参阅),并使用这些代码进行测试:

<?php
$SRVusername="root";
$SRVpassword="";
$SRVadress="localhost";
$SRVdatabase="envapp";

$connexion=mysqli_connect($SRVadress,$SRVusername,$SRVpassword,$SRVdatabase);

if(mysqli_connect_errno())
{
    printf("1: Erreur de connexion\n");
    http_response_code(500);
    exit();
}

if(isset($_POST["Identifiant"]) && isset($_POST["MotPasse"]) && isset($_POST["Email"]) && isset($_POST["NoTel"]) && isset($_POST["MotPasseConfi"]))
{
    $Identifiant = $_POST["Identifiant"];
    $MotPasse = $_POST["MotPasse"];
    $Email = $_POST["Email"];
    $NoTel = $_POST["NoTel"];
    $MotPasseConfi = $_POST["MotPasseConfi"];

    if($MotPasse == $MotPasseConfi)
    {
            $checkquery = "INSERT INTO `joueurs` (`ID_JOUEUR`, `PSEUDO`, `PASSWORD`, `EMAIL`, `NUMTEL`) VALUES (NULL, '".$Identifiant."', '".$MotPasse."', '".$Email."', '".$NoTel."');";

            if($checkstate = mysqli_query($connexion,$checkquery))
            {
                http_response_code(200);
            } else {
                printf("4: Erreur lors de la requête %s\n", $checkquery);
                http_response_code(500);
                exit();
            }
    }
    else
    {
        printf("3: Erreur Les mots de passe ne correspondent pas !");
        http_response_code(500);
        exit();
    }
}
else
{
    printf("2: Erreur Les POST ne sont pas passés !");
    http_response_code(500);
    exit();
}
mysqli_close($connexion);
?>
或者简单地检查响应代码,如

if(www.responseCode != 200) { ... }

或者,对于自定义响应文本,您也可以使用标题,例如

header($_SERVER["SERVER_PROTOCOL"]. ' ' . 500 . ' ' . "1: Erreur de connexion");

我建议您使用例如设置适当的http响应代码(如
500
-请参阅),并使用这些代码进行测试:

<?php
$SRVusername="root";
$SRVpassword="";
$SRVadress="localhost";
$SRVdatabase="envapp";

$connexion=mysqli_connect($SRVadress,$SRVusername,$SRVpassword,$SRVdatabase);

if(mysqli_connect_errno())
{
    printf("1: Erreur de connexion\n");
    http_response_code(500);
    exit();
}

if(isset($_POST["Identifiant"]) && isset($_POST["MotPasse"]) && isset($_POST["Email"]) && isset($_POST["NoTel"]) && isset($_POST["MotPasseConfi"]))
{
    $Identifiant = $_POST["Identifiant"];
    $MotPasse = $_POST["MotPasse"];
    $Email = $_POST["Email"];
    $NoTel = $_POST["NoTel"];
    $MotPasseConfi = $_POST["MotPasseConfi"];

    if($MotPasse == $MotPasseConfi)
    {
            $checkquery = "INSERT INTO `joueurs` (`ID_JOUEUR`, `PSEUDO`, `PASSWORD`, `EMAIL`, `NUMTEL`) VALUES (NULL, '".$Identifiant."', '".$MotPasse."', '".$Email."', '".$NoTel."');";

            if($checkstate = mysqli_query($connexion,$checkquery))
            {
                http_response_code(200);
            } else {
                printf("4: Erreur lors de la requête %s\n", $checkquery);
                http_response_code(500);
                exit();
            }
    }
    else
    {
        printf("3: Erreur Les mots de passe ne correspondent pas !");
        http_response_code(500);
        exit();
    }
}
else
{
    printf("2: Erreur Les POST ne sont pas passés !");
    http_response_code(500);
    exit();
}
mysqli_close($connexion);
?>
或者简单地检查响应代码,如

if(www.responseCode != 200) { ... }

或者,对于自定义响应文本,您也可以使用标题,例如

header($_SERVER["SERVER_PROTOCOL"]. ' ' . 500 . ' ' . "1: Erreur de connexion");

我不知道您将如何在PHP中做出响应,但我的答案是您将返回一个相关的错误代码(可能在您的情况下)。这将允许您检查
UnityWebRequest
.ishttperor
属性;看

客户机可以解释响应代码并显示错误(使用正确的语言),也可以向响应添加包含详细信息的标题。后者可由
.GetResponseHeader
访问


但是,我建议您在发送请求之前验证Unity客户端上的功能。对密码匹配的简单验证可以很容易地进行检查,并且可以避免您发送一个您知道会失败的请求。

我不知道您在PHP中会如何响应,但我的答案是您返回一个相关的错误代码(可能在您的情况下)。这将允许您检查
UnityWebRequest
.ishttperor
属性;看

客户机可以解释响应代码并显示错误(使用正确的语言),也可以向响应添加包含详细信息的标题。后者可由
.GetResponseHeader
访问


但是,我建议您在发送请求之前验证Unity客户端上的功能。密码匹配的简单验证可以很容易地进行检查,并且可以避免您发送一个您知道将要失败的请求。

请添加失败时使用的代码。。包括检查和具体测试方法?请添加失败时使用的代码。。包括检查和您如何测试它?这就是我要找的…我确信我没有返回Http错误。谢谢你,伙计。这就是我要找的…我确信我没有返回Http错误。谢谢你,伙计。