Ich versuche, eine winforms-Anwendung zu machen, also wenn etwas geklickt wird, überprüft es eine Webseite für seine Antwort.C# ignoriere sonst wenn Aussage
Ich habe die Webseite getestet, um zu sehen, ob es ein PHP-Fehler ist, aber es funktioniert gut von dieser Seite.
Es ignoriert die else if-Anweisung vollständig und überspringt die else-Anweisung darunter, obwohl die Antwort "Nicht zugewiesen" ist.
Hier ist mein Code:
private void button1_Click(object sender, EventArgs e)
{
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://fms.psrpc.co.uk/apiconfirmD.php?" + ApiKey);
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (response)
{
StreamReader reader = new StreamReader(response.GetResponseStream());
if (reader.ReadToEnd() == "Changed")
{
label2.Visible = false;
button1.Enabled = false;
button2.Enabled = true;
button3.Enabled = true;
button4.Enabled = true;
button5.Enabled = true;
button6.Enabled = true;
button7.Enabled = true;
button8.Enabled = true;
timer1.Enabled = true;
}
else if (reader.ReadToEnd() == "Unassigned")
{
string message = "Error Code: [email protected]@Error booking [email protected] make sure you have been assigned to a [email protected]@If this error persists please contact K.McCrudden.";
message = message.Replace("@", "" + System.Environment.NewLine);
string title = "Error!";
MessageBoxButtons buttons = MessageBoxButtons.OK;
DialogResult result = MessageBox.Show(message, title, buttons, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2);
}
else
{
string message = "Error Code: [email protected]@Error booking [email protected] make sure you have booked a shift and have been [email protected]@If this error persists please contact K.McCrudden.";
message = message.Replace("@", "" + System.Environment.NewLine);
string title = "Error!";
MessageBoxButtons buttons = MessageBoxButtons.OK;
DialogResult result = MessageBox.Show(message, title, buttons, MessageBoxIcon.Error, MessageBoxDefaultButton.Button2);
}
}
}
If-Anweisungen übersprungenen nicht einfach sind. Ich würde Sie dringend bitten, zu überprüfen, was "reader.ReadToEnd() ==" Unassigned "' tatsächlich evaluiert. – Carcigenicate
Nachdem Sie 'ReadToEnd()' einmal aufgerufen haben, was erwarten Sie, dass ein zweiter Anruf zurückkehrt? Tipp: Sie haben * bis zum Ende * des Lesers gelesen. Was kann es sonst noch zu lesen geben? Zweiter Hinweis: Vielleicht sollten Sie 'ReadToEnd()' einmal aufrufen und das Ergebnis in einer String-Variablen speichern ... –
@JonSkeet Doh. Es ist mir peinlich, dass ich das nicht verstanden habe. – Carcigenicate