Hallo,
ich möchte aus meiner WinForms Anwendung heraus einen WebService mittels POST antriggern. Der Webservice ist ein Jenkins Server. Das funktioniert auch einwandfrei. Der Job wird gestartet.
Allerdings bekomme ich keinen Response zurück.
Ich hab mir eine Helper Klasse gebaut mit folgender Methode gebaut:
public static async Task<string> Post()
{
using (HttpClient client = new HttpClient())
{
string authToken = Convert.ToBase64String(System.Text.ASCIIEncoding.ASCII.GetBytes("admin:11be8206410f8"));
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", authToken);
var nullcontent = new StringContent("");
using (HttpResponseMessage res = await client.PostAsync("http://wi216ps1:8080/job/TestPS/buildWithParameters?samAccountName=test", null))
{
using (HttpContent content = res.Content)
{
string data = await content.ReadAsStringAsync().ConfigureAwait(false);
if (data != null)
{
return data;
}
}
}
}
return string.Empty;
}
Und aufrufen tue ich das ganze über eine button Click Methode:
private async void b_CreateUser_Click(object sender, EventArgs e)
{
var response = await RestHelper.Post();
textBox1.Text = response;
}
Ich hab es mit einem GET versucht, das klappt. Nur leider beim Post bekomme ich kein Response. Ich vermute es liegt an dem async.
Könnt ihr mir sagen, wie ich das Problem gelöst bekomme?
Na dann schau doch mal mit Postman oder Fiddler ob er überhaupt was sendet.
Na dann schau doch mal mit Postman oder Fiddler ob er überhaupt was sendet.
Vielen vielen Dank. So ein verdammter Mist. Der content ist leer. Das Feld was ich suche, steht im Location Header. Den bekomme ich jetzt natürlich ausgegeben.
Der Tipp mit Postman ist Gold wert. Danke.