2017-01-03 3 views
0

entschied ich mich nur über API zu erlernen und wie bei GitHub & Codeproject auf einem Etikett dhWie kann ich eine Website-API in meiner Anwendung nennen

Die Sache schaut über Ich habe anhängen, aber ich könnte nicht Finde Beispiele oder Open Source-Projekte, die zeigen, was ich lernen möchte.

Ich möchte die "ID" aus der API an ein Etikett anhängen.

https://api.coinmarketcap.com/v1/ticker/ethereum/
https://coinmarketcap.com/api/

Aber ich habe keine Ahnung, wie dies zu initialisieren .. Würde ich rufe ich HttpWebRequest?

+1

Haben Sie die Dokumentation: https://msdn.microsoft.com/en-us/library/system.net.httpwebrequest(v=vs.110).aspx? –

+0

Ich tat yeah und ich schaute auf "GetObjectData (SerializationInfo, StreamingContext)" aber konnte es nicht herausfinden. – JonnyKhanas

+0

http://stackoverflow.com/questions/32716174/call-and-consume-api-in-winform-using-c-net –

Antwort

3

Verwenden Sie Newtonsoft.Json, um Ihre Json-Ergebnisse in einem C# -Objekt zu deserialisieren. Rufen Sie die API Uri auf, rufen Sie den Inhalt ab und verwenden Sie JsonConvert, um die Deserialisierung für ein Objekt durchzuführen.

Zunächst importieren Json-Bibliothek (Achten Sie darauf, von Package Manager installieren)

using Newtonsoft.Json; 

Verwenden Sie dann den folgenden Code die ID des Tickers abzurufen.

const string uri = @"https://api.coinmarketcap.com/v1/ticker/ethereum/"; 
var client = new WebClient(); 
var content = client.DownloadString(uri); 

var results = JsonConvert.DeserializeObject<List<CoinApi>>(content); 

label1.Text = results[0].Id; // ethereum 

Sie müssen die zu deserialisierende Modellklasse angeben.

public class CoinApi 
{ 
    public string Id { get; set; } 
    public string Name { get; set; } 
    public string Symbol { get; set; } 
    // ... 
} 
+1

Dieser macht viel mehr Sinn, einfach zu lesen und zu verstehen, danke! – JonnyKhanas

3

Suchen Sie nach HttpClient. In der System.Net.Http-Schnittstelle. Hier ist ein Beispielcode, aber Ihre genaue Umsetzung hängt natürlich von der api Sie anrufen:

string completeUrl = String.Format("{0}{1}", urlbase,apiext); 

// apiext in diesem Fall ist der Aufruf an die API-Methode an die URL angehängt

HttpClient http = new HttpClient(); 
http.DefaultRequestHeaders.Add("Authorization", "Bearer " + AuthHeader); // If you need authorization 
http.DefaultRequestHeaders.Add("User-Agent","(myemail.com)"); 
var response = await http.GetAsync(completeUrl); 
return await response.Content.ReadAsStringAsync(); 
Verwandte Themen