Hallo Stefan,
nichts ist unmöglich ;-) Und natürlich kannst du diesen Dienst aus deiner Anwendung heraus nutzen. So könnte ein Aufruf des Dienstes Aussehen:
public string sendRequest(string varA, string varB, string url)
{
HttpWebRequest request =(HttpWebRequest)WebRequest.Create(url);
//FOrmat ist im Quellentext nicht angegeben, also raten...
ASCIIEncoding encoding = new ASCIIEncoding();
//Die Werte für den Post habe ich aus dem Quelltext der Seite
string postData = string.Format("R={0}&H={1}&OP=AUTO",varA, varB);
byte[] data = encoding.GetBytes(postData);
//Die Methode ist POST
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;
//Einen Stream erzeugen, und die Dten damit an den Server senden
Stream newStream = request.GetRequestStream();
newStream.Write(data, 0, data.Length);
newStream.Close();
//NUn die Antwort empfangen
StreamReader reader = default(StreamReader);
string result = null;
HttpWebResponse response = default(HttpWebResponse);
response = (HttpWebResponse)request.GetResponse();
reader = new StreamReader(response.GetResponseStream());
result = reader.ReadToEnd();
reader.Close();
return result; //Hier wird der Komplette HTML Quelltext ausgegeben den man als Response erhält
}
Die Verwendung:
private void Form1_Load(object sender, EventArgs e)
{
this.TextBox1.Text = sendRequest("3391032,020", "5468747,666", "http://geodaten.service24.rlp.de/cgi-bin/transatkis.cgi");
}
In dieser kleinen Funktion verwende ich nur einen
HttpWebRequest &
Response und ein wenig
Grundwissen über HTTP, dass man haben sollte, wenn man solche Vorhaben umsetzen will.
Die Namen der Input Felder habe ich dabei aus dem Quelltext der Webseite die du da gepostet hast.
Als Antwort bekommst den kompletten HTML Quelltext der Antwortseite und musst diesen dann ggf mit Regular Expressions auswerten und die Informationen, die du benötigst auslesen. (Hier wäre das wohl das Ergebnis)
Folgendes solltest du noch beachten:
- Du solltest den Anbieter des Dienstes fragen ob du diesen Dienst aus deinem Programm heraus nutzen darfst, denn das sehen nicht alle gerne (Eventuell gibts sogar eine extra dafür vorgesehene API)
- Wenn dein Programm sehr viele Anfragen an diesen Dienst sendet könnte der Anbieter dies als eine
DoS Attake deuten.
Ich hoffe das hilft dir weiter :-)
MfG, Sebastian Gross