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
Man kann es schöner schreiben, oder was ist die Frage?
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
Non quia difficilia sunt, non audemus, sed quia non audemus, difficilia sunt! - Seneca
Die Frage ist einfach:
Kann man den angegeben VB-Code in C# übersetzen?
Mh...? 🤔
Der VB Code entspricht doch dem C# Code.
- performance is a feature -
Microsoft MVP - @Website - @AzureStuttgart - github.com/BenjaminAbt - Sustainable Code
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
Microsoft MVP // Me // Blog // GitHub // @Egghead // All my talks // Speakerdeck
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.
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?
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.
Ich dachte nur der Code den ich in C# gespostet habe ist nicht sehr "schön".... Aber wenn du meinst das es okay ist 😉
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.
@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.