Wie zum Aufruf eines REST-API aus einer Windows-Dienst

Ich versuche zu rufen, eine Rest-API aus einer windows-Dienst. Ich habe nie versucht, diese vor. Ich bin nicht sicher, warum bin ich nicht in der Lage, den Anruf zu tätigen.

Mein code:

    string urlParameter = "posts/1";
    var client = new HttpClient();
    client.BaseAddress = new Uri("http://jsonplaceholder.typicode.com/");
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    HttpResponseMessage response = client.GetAsync(urlParameter).Result;
    if (response.IsSuccessStatusCode)
    {
        var dataObj = response.Content.ReadAsAsync<IEnumerable<MyType>>().Result;
    }

Ich erhalte die folgende Fehlermeldung:

  • Meldung: Fehler beim senden der Anfrage.
  • Innere Ausnahme, Meldung: {"Die zugrunde liegende Verbindung wurde geschlossen: Die
    Verbindung wurde unerwartet geschlossen."}
  • Inneren Ausnahme-Stack-Trace-bei
    System.Net.HttpWebRequest.EndGetResponse(IAsyncResult asyncResult)
    System.Net.Http.HttpClientHandler.GetResponseCallback(IAsyncResult
    ar)

Dieser Fehler wird generiert, auf die folgende Zeile:

HttpResponseMessage response = client.GetAsync(urlParameter).Result;

Irgendwelche Vorschläge würden geschätzt.

EDIT: (Aktualisiert Code)

    string urlParameter = "posts/1";
    var client = new HttpClient();
    client.BaseAddress = new Uri("http://jsonplaceholder.typicode.com/");
    client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json"));

    try
    {
        //var response = await client.GetAsync(urlParameter);
        var task = client.GetAsync(urlParameter);
        task.Wait();
        var response = task.Result;

        if (response.IsSuccessStatusCode)
        {
            var dataObj = response.Content.ReadAsAsync<IEnumerable<MyType>>().Result;
        }
    }
    catch (Exception ex)
    {
        string a = ex.Message;
        string b = ex.ToString();
    }

EDIT 2: (Noch immer die gleichen Fehler)

private static async void TestAPI2()
{
    using (HttpClient client = new HttpClient())
    {
        client.DefaultRequestHeaders.Add("Get", "application/json");

        var response = await client.GetAsync("http://jsonplaceholder.typicode.com/posts/1");

        string context = await response.Content.ReadAsStringAsync();

    }
}
Hey, soz verpasste ich die chat-Anfrage früher, klingt wie du bist es immer, ich in der Regel hängen in der c# - chat-Raum, wenn Sie weitere Hilfe benötigen, auf diese, die pop-in. chat.stackoverflow.com/rooms/7/c

InformationsquelleAutor John Doe | 2016-05-04

Schreibe einen Kommentar