Laden...

Daten von API-Server (HTML) abfragen mit C# (War VB davor)

Erstellt von zeroman1122 vor 8 Jahren Letzter Beitrag vor 8 Jahren 1.893 Views
Z
zeroman1122 Themenstarter:in
8 Beiträge seit 2015
vor 8 Jahren
Daten von API-Server (HTML) abfragen mit C# (War VB davor)

Hallo,

ich habe bis jetzt nur in VB programmiert und steige nun betriebsbedingt auf C# um. Mein Problem ist Folgendes:
Ich muss Daten von eine API-Server abfragen.

In VB ging das recht einfach:


Dim reqStr As String = "<<Internet-Adresse>>"
Dim apiObj As Object
apiObj .Open("GET", reqStr, False)
apiObj .send()
Dim answer As String = apiObj.responsetext

in C# finde ich nur die Vorgehensweise mit WebRequest/HttpWebResponse:


string reqStr = "<<Internet-Adresse>>"
request = WebRequest.Create(reqStr);
response = (HttpWebResponse)request.GetResponse();
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string answer = reader.ReadToEnd();
reader.Close ();
dataStream.Close ();
response.Close ();

Gibts da auch noch ne andere Möglichkeit?

Danke schon mal in Voraus!
Daniel

16.842 Beiträge seit 2008
vor 8 Jahren

Man kann es schöner schreiben, oder was ist die Frage?

3.170 Beiträge seit 2006
vor 8 Jahren

Hallo,

versuch's mal mit WebClient.DownloadString 😉

Gruß, MarsStein

Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca

Z
zeroman1122 Themenstarter:in
8 Beiträge seit 2015
vor 8 Jahren

Die Frage ist einfach:

Kann man den angegeben VB-Code in C# übersetzen?

16.842 Beiträge seit 2008
vor 8 Jahren

Mh...? 🤔
Der VB Code entspricht doch dem C# Code.

2.207 Beiträge seit 2011
vor 8 Jahren

Hallo zeroman1122,

Kann man den angegeben VB-Code in C# übersetzen?

Convert Code - Telerik wäre eine Möglichkeit, wenn man einfach nur schlichte Übersetzung will. (Sicherlich nicht die Beste Lösung das immer stupide zu übersetzen). Schau dir trotzdem mal den von MarsStein geposteten Link an.

Gruss

Coffeebean

T
2.224 Beiträge seit 2008
vor 8 Jahren

Der Code in C# entspricht doch schon dem original.
Mehr dort reinzufummeln würde ich jetzt nicht empehlen.
Kannst noch das Ganze in using packen damit es etwas besser aussieht, aber sonst hast du genau den C Code geschrieben den du als Lösung brauchst.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

Z
zeroman1122 Themenstarter:in
8 Beiträge seit 2015
vor 8 Jahren

Wenn ich den Code genau so eingeben Unterstreicht er mir das .Open und sagt

Fehlermeldung:
""object" enthält keine Definition für "Open", und es konnte keine Erweiterungsmethode "Open" gefunden werden, die ein erstes Argument vom Typ "object" akzeptiert. (Fehlt eine Using-Direktive oder ein Assemblyverweis?)"

woran könnte das liegen?

T
2.224 Beiträge seit 2008
vor 8 Jahren

Ohne Code kann man dir kaum sagen wo das Problem liegt.
Aber ich verstehe nicht, was du noch machen willst.
Du hast deinen Cpde bereits von VB zu C# portiert, also warum noch weiter daran rumfummeln?

Auch weiß aktuell keiner welchen Ansatz du nun weiterverfolgst.
Bei der Lösung aus deinem ersten Post wird mit dem Erstellen des WebRequest dein "Open" bereits umgesetzt.

Nachtrag:
Wenn du einfach den Telerik Konverter genommen hast, ist klar warum er dies gemacht hat.

Hier der Code, den ich über dein VB Beispiel bekomme:


string reqStr = "<<Internet-Adresse>>";
object apiObj = null;
apiObj.Open("GET", reqStr, false);
apiObj.send();
string answer = apiObj.responsetext;

//=======================================================
//Service provided by Telerik (www.telerik.com)
//Conversion powered by NRefactory.
//Twitter: @telerik
//Facebook: facebook.com/telerik
//=======================================================

Das Verhalten an der Stelle ist auch richtig.
Mich wundert es eigentlich, dass dein VB Code überhaupt klappt.
Den in dem C# Code ist Object as Root Objekt aller weiteren Klassen und bietet keine "Open" Methode.
Entsprechend wird dir ein Fehler ausgegeben beim kompilieren.
Aber warum machst du dies auch, wenn du oben deinen Code hast, der genau das macht was du machen willst?
Ich kann deine Denkweise nicht verstehen.

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

Z
zeroman1122 Themenstarter:in
8 Beiträge seit 2015
vor 8 Jahren

Ich dachte nur der Code den ich in C# gespostet habe ist nicht sehr "schön".... Aber wenn du meinst das es okay ist 😉

1.040 Beiträge seit 2007
vor 8 Jahren

Er will den VB-Code unter C# nutzen. 😉

@zeroman1122:
Der von dir gepostete C#-Code im ersten Beitrag entspricht deinem geposteten VB-Code. Damit ist deine Frage schon beantwortet.

T
2.224 Beiträge seit 2008
vor 8 Jahren

@p!lle
Er will den VB Code eher durch den Telerik Konverter jagen.

@zeroman1122
Siehe meinen letzten Beitrag!
Da steht alles.
Das Thema ist eigentlich beendet, weiter an dem Code rumfummeln ist Zeitverschwendung 😕

T-Virus

Developer, Developer, Developer, Developer....

99 little bugs in the code, 99 little bugs. Take one down, patch it around, 117 little bugs in the code.

Z
zeroman1122 Themenstarter:in
8 Beiträge seit 2015
vor 8 Jahren

okay dann hat sich das erlidigt. Danke an alle!