Entwickler-Ecke
ASP.NET und Web - c# daten an php übergeben!
manser - Sa 27.10.07 19:35
Titel: c# daten an php übergeben!
Hi,
wie kann ich daten per c# an ein PHP Script übergeben?
Habe mir die WebClient Klasse angeschaut, doch leider nicht wirklich nen Beispiel gefunden.
Kann mir jemand von euch helfen?
Moderiert von
Christian S.: Topic aus Internet / Netzwerk verschoben am Sa 27.10.2007 um 19:36
manser - So 28.10.07 21:25
weiß hier niemand bescheid?
Christian S. - So 28.10.07 21:27
Wahrscheinlich kann nur niemand mit den wenigen Informationen, die Du lieferst, etwas anfangen. Was willst Du übertragen? Textdaten, Bilder, Filme, ... Was erwartet das PHP-Skript? GET, POST, etc.?
manser - Mo 29.10.07 19:09
erst einmal soll nur text übertragen werden...per Post an ein PHP Script welches auf einem externen Server liegt.
Gruß
Manser
Christian S. - Mo 29.10.07 19:16
Hallo!
Dann sollte die HttpWebRequest-Klasse für Dich gut geeignet sein. Erzeugen z.B mit:
C#-Quelltext
1:
| HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://www.einskript.de"); |
Dann kannst noch die Method-Eigenschaft auf "POST" setzen.
Wenn Du dann etwas senden willst, kannst Du das über den RequestStream (Stichwort:
request.GetRequestStream();) machen.
Die Antwort erhälst Du dann mittels
request.GetResponse();
Mit den Stichworten und der Doku (die auch ein paar Beispiele enthält) solltest Du erstmal voran kommen. Wenn's nicht weiter geht, einfach nochmal fragen ;-)
Grüße
Christian
manser - Mo 29.10.07 22:11
ok, vielen dank für deine mühe...
jetzt werde ich mich erst einmal selbst ein bischen an dem code probieren.
gruß
manser
manser - Di 30.10.07 22:34
So,
hab jetzt folgenden Code;
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42: 43: 44: 45: 46: 47:
| using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Net; using System.IO;
namespace meinedomain.org { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
private void button1_Click(object sender, EventArgs e) { HttpWebRequest request = (HttpWebRequest)WebRequest.Create(@"http://www.meinedomain.org/test.php"); request.Method = "POST";
string postData = "username=" + textBox1.Text; ASCIIEncoding encoding = new ASCIIEncoding(); byte[] byte1 = encoding.GetBytes(postData);
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = byte1.Length;
Stream newStream = request.GetRequestStream();
newStream.Write(byte1, 0, byte1.Length);
WebResponse myWebResponse = request.GetResponse(); newStream.Close();
} } } |
in dem Script steht folgendes:
Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13:
| <?php if ($_POST[username] == 'hund') { $file = "counter.txt"; // Dateizuweisung $ftp = @fopen($file,"r+"); // Öffnet die Datei $count = (int)fgets($ftp,10); // Holt die ersten 10 Zeichen $count++; // Addiert eine 1 rewind($ftp); // Setzt Zeige auf 0. Position fwrite($ftp,$count); // Schreibt fclose($ftp); // Schließt die Datei include($file); // Zeigt sich selbst an } ?> |
aber es tut sich nicht wirklich was wenn ich hund übergebe...
1. Ich weiß nicht ob wirklich was ankommt.
2. Ich weiß nicht wie ich die Antwort des Scripts als Text anzeigen lassen kann.
Gruß
Manser
Kha - Di 30.10.07 22:49
Denke noch einmal scharf über die Reihenfolge von GetResponse und Close nach - erst schickst du die Abfrage ab, dann beendest du ihre Dateninitialisierung ;) ?
manser - Mi 31.10.07 10:02
verstehe ich nicht ganz, wie müsste es denn richtig sein?
----
das senden an das Script funktioniert jetzt teilweise...(manchmal stürzt das Programm auch ab), doch wie bekomm ich jetzt die Antwort des PHP Scriptes...zurück als String?
also wenn im Script unten noch echo('ok'); stehen würde soll mein Programm das ja auch wissen.
Christian S. - Mi 31.10.07 10:37
manser hat folgendes geschrieben: |
verstehe ich nicht ganz, wie müsste es denn richtig sein? |
Wenn Khabarakh so fragt, könnte man fast vermuten, dass sie im Moment falsch ist. Und bei
zwei Zeilen sollte es möglich sein, dass Du selber rausfindest, was die richtige Reihenfolge ist. Gibt ja nicht allzu viele Möglichkeiten :roll:
manser hat folgendes geschrieben: |
das senden an das Script funktioniert jetzt teilweise...(manchmal stürzt das Programm auch ab), doch wie bekomm ich jetzt die Antwort des PHP Scriptes...zurück als String? |
Was denkst Du, macht die Methode Get
Response?
Ich möchte Dich wirklich bitten, ein bisschen mehr Eigeninitiative zu zeigen. Offensichtlich hast Du die GetResponse-Methode einfach per Copy & Paste übernommen, ohne Dich damit zu beschäftigen, was da passiert.
manser - Do 01.11.07 11:26
doch hab mich damit beschäftigt...es funktioniert ja auch soweit...
nur wie kann ich jetzt die Ausgabe des Scripts an mein Programm zurückgeben?
Christian S. - Do 01.11.07 12:15
Du könntest einfach mal überlegen, warum ich das Wort "Response" fett gemacht habe in meinem vorigen Posting. Und Dich dann mal mit der Klasse WebResponse beschäftigen.
manser - Do 01.11.07 22:19
hab ich, komm nicht weiter und jetzt?
Christian S. - Do 01.11.07 23:47
Und jetzt: Was hast Du versucht, wo hakt es? Was sind Deine Fragen?
manser - Fr 02.11.07 23:50
ich verstehe es nicht und möchte jetzt wissen wie es richtig geht...
Christian S. - Sa 03.11.07 00:12
*seufz*
Du musst nur die Doku zur WebResponse-Klasse aufrufen, bemerken dass es die Methode "GetResponseStream" gibt (wenn man "GetRequestStream" kennt, sticht das sofort ins Auge) und Dir das Beispiel in der Doku ansehen.
manser - Sa 03.11.07 10:38
hab ich, mir stach nichts ins Auge und verstehen tue ich es auch noch nicht...
Christian S. - Sa 03.11.07 12:37
Wo hakt es denn? Was hast Du versucht? Was verstehst Du nicht? An welcher Stelle konnte Dir die Doku (die ja sogar Quellcode-Beispiele enthält!) nicht helfen?
manser - So 04.11.07 18:42
wo es hakt habe ich doch schon geschrieben...
dass ich die doku nicht verstehe habe ich auch schon geschrieben...den quellcode haabe ich ja genutzt...also was willst du noch?
ich bracuehe einfach Hilfe!
Christian S. - So 04.11.07 18:51
Was verstehst Du in der Doku nicht? Welchen Teil des dortigen Quellcodes?
Wo ist der Quellcode, in dem Du mit GetResponseStream arbeitest und der nicht funktioniert?
Zeig mir einfach, dass Du Dich auch selber bemühst. Ich werde Dir Dein Programm nicht schreiben, ich werde Dir helfen es selber zu tun.
manser - So 04.11.07 21:12
habs jetzt, woanders bekommt man wenigstens noch Hilfe:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32: 33: 34: 35: 36: 37: 38: 39: 40: 41: 42:
| StringBuilder strData = new StringBuilder(); strData.Append("username=hund"); byte[] dataToPost = new ASCIIEncoding().GetBytes(strData.ToString());
HttpWebRequest myRequest = (HttpWebRequest)WebRequest.Create("http://meinedomain.org/test.php"); myRequest.Method = "POST";
myRequest.ContentType="application/x-www-form-urlencoded";
myRequest.ContentLength = dataToPost.Length;
Stream myStream = myRequest.GetRequestStream();
myStream.Write(dataToPost,0,dataToPost.Length); myStream.Close();
WebResponse myResponse = myRequest.GetResponse(); Stream responseStream = myResponse.GetResponseStream();
StreamReader streamReader = new StreamReader(responseStream);
string result = streamReader.ReadToEnd(); this.Text = result; streamReader.Close(); responseStream.Close(); myResponse.Close(); myStream.Close(); |
Christian S. - So 04.11.07 21:24
manser hat folgendes geschrieben: |
habs jetzt, woanders bekommt man wenigstens noch Hilfe: |
Einfach mal aus der Doku zu GetResponseStream kopiert:
C#-Quelltext
1: 2: 3: 4: 5: 6: 7: 8: 9: 10:
| WebResponse myWebResponse = myWebRequest.GetResponse();
Stream ReceiveStream = myWebResponse.GetResponseStream(); Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
StreamReader readStream = new StreamReader( ReceiveStream, encode ); |
Entschuldige, dass ich so dreist war, von Dir zu erwarten, dass Du selber liest :roll:
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2024 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!