| 

.NET C# Java Javascript Exception

1
Hallo zusammen
Zur Einleitung:
Ich habe eine Website mit einem Javascript, welches mir einen Wert über ein php Skript von meinem Server holt.
this.request = new ActiveXObject('Microsoft.XMLHTTP');
url = "http://www.xxxx.eu/xxx/getWerte.php";
this.request.open('post', url, false);
this.request.setRequestHeader('Content-Type', 'application/x-www-form-urlencoded');
this.request.send('was=aussen&datum=' + this.date);
if (this.request == null) {
alert("Verbindung fehlgeschlagen");
} else {
var atakt = document.getElementById('at');
var atstr = this.request.responseText;

atakt.innerHTML = (atstr / 10);
}

PHP
<?php
header('Content-Type: text/html; charset=utf-8'); // sorgt für die korrekte Kodierung
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); // ist mal wieder wichtig wegen IE

$was = $_POST['was'];

$datum = $_POST['datum'];

$connection=mysql_connect(localhost, root, xxxx) or die
("Verbindungsversuch fehlgeschlagen");
mysql_select_db(werte, $connection) or die("Konnte die Datenbank nicht waehlen.");

....
elseif ($was == "aussen")
{
$sql = "SELECT Aussen from Temperatur where zeit = (select max(zeit) from Temperatur)";
$rtn = mysql_query($sql) or die("Anfrage nicht erfolgreich");

while ($a = mysql_fetch_array($rtn)){
$kw = $a['Aussen'];
}


echo $kw;
}

....

?>

Soweit, so gut.
Der Rückgabewert wird in ein bestimmtes Element auf der Website geschrieben.
Nun will ich das PHP Script mit C# bemühen, mir den selben Wert zu geben. Aber egal was ich versuche, es klappt nicht. Führe ich das Programm mit Haltepunkte aus, so ist zu sehen, dass die Kommunikation 90% klappt, nur der Content bleibt leer. Eine der 1000 Möglichkeiten, die ich versucht hab, sah so aus:
var uri = "http://www.xxxx.eu/xxx/getWerte.php?was=aussen&datum=10.06.2015";
var httpClient = new HttpClient();
HttpResponseMessage response = await httpClient.GetAsync(uri);
response.EnsureSuccessStatusCode();
var content = await response.Content.ReadAsByteArrayAsync();


Wer hat ein Tip für mich? Ich muss natürlich noch sagen, dass die Website auf meinem Win 10 Rechner nicht mehr geht (Crossloading??) Entwickelt wird eine Win10 Universalapp mit VS 2015 RC .. also für genau einen RICHTIGEN ;-) Tipp wäre ich dankbar

Grüsse
Martin
News:
10.06.2015
BrainyRP1 3 2
2 Antworten
1
Was mir so ins Auge sticht. Du verwendet in PHP $_POST

$was = $_POST['was'];
$datum = $_POST['datum'];

stellst deine Anfrage aus C# aber via GET:

httpClient.GetAsync(uri);

Solange dein PHP-Script nur Daten ausliest, aber keine Daten auf dem Server verändert kannst Du statt $_POST einfach $_GET/$_REQUEST verwenden (bei $_GET musst Du noch dein JavaScript anpassen). Oder Du verwendest in C# PostAsync().

Nachtrag

Unter der Annahme, dass dein PHP-Script nichts auf dem Server verändert sondern nur Daten aus der DB holt, aufbereitet und zurückliefert kannst du dein Script so anpassen. $_GET durch $_REQUEST ersetzen ($_REQUEST enthält die Parameter die per GET und POST übergeben wurden, damit muss das JS nicht angepasst werden).

<?php
header('Content-Type: text/html; charset=utf-8'); // sorgt für die korrekte Kodierung
header('Cache-Control: must-revalidate, pre-check=0, no-store, no-cache, max-age=0, post-check=0'); // ist mal wieder wichtig wegen IE

$was = $_REQUEST['was']; // Statt $_POST

$datum = $_REQUEST['datum']; // Statt $_POST

$connection=mysql_connect(localhost, root, xxxx) or die
("Verbindungsversuch fehlgeschlagen");
mysql_select_db(werte, $connection) or die("Konnte die Datenbank nicht waehlen.");

....
elseif ($was == "aussen")
{
$sql = "SELECT Aussen from Temperatur where zeit = (select max(zeit) from Temperatur)";
$rtn = mysql_query($sql) or die("Anfrage nicht erfolgreich");

while ($a = mysql_fetch_array($rtn)){
$kw = $a['Aussen'];
}


echo $kw;
}

....

?>
11.06.2015
phg 1,6k 3
Danke für die Antwort, nur leider hab ich gar keine Ahnung von PHP .. es ist alles nur geklaut ^^
In c# hat es mit PostAsync() auch nicht funktioniert. Hast Du ein Beispiel, wie ich das PHP Script für diese Get Geschichte neu erstellen kann?
BrainyRP1 11.06.2015
Hab eben meine Antwort ergänzt. Denke damit kommst du klar, wenn nicht einfach nochmal melden.
phg 11.06.2015
0
Super, danke für die schnelle antwort. Bin 'leider' die nächste im Urlaub, wird es also in 2 Wochen testen. wenns klappt, gibt's 100 Sternchen ;-)
12.06.2015
BrainyRP1 3 2
Wenn klappt bin ich auch mit 1x klick auf richtige Antwort bei meiner Antwort zufrieden ;)
Schönen Urlaub!
phg 12.06.2015
Du hättest aber 100 Sterne verdient .. Danke nochmal ... Diese Kleinigkeit mit dem 'Request' geändert, schon lief es in beide Welten
BrainyRP1 02.07.2015

Stelle deine .net-Frage jetzt!
TOP TECHNOLOGIES CONSULTING GmbH