Unten ist der Code, der Authentifizierung durchführt, den Authorization-Header generiert und die API aufruft.Autorisierungsheader ist verloren auf Umleitung
Leider bekomme ich einen 401 Unauthorized
Fehler nach der GET
Anfrage auf der API.
Wenn ich jedoch den Verkehr in Fiddler erfassen und wiederholen, ist der Aufruf der API erfolgreich und ich kann den gewünschten 200 OK
Statuscode sehen.
[Test]
public void RedirectTest()
{
HttpResponseMessage response;
var client = new HttpClient();
using (var authString = new StringContent(@"{username: ""theUser"", password: ""password""}", Encoding.UTF8, "application/json"))
{
response = client.PostAsync("http://host/api/authenticate", authString).Result;
}
string result = response.Content.ReadAsStringAsync().Result;
var authorization = JsonConvert.DeserializeObject<CustomAutorization>(result);
client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue(authorization.Scheme, authorization.Token);
client.DefaultRequestHeaders.Add("Accept", "application/vnd.host+json;version=1");
response =
client.GetAsync("http://host/api/getSomething").Result;
Assert.True(response.StatusCode == HttpStatusCode.OK);
}
Wenn ich diesen Code ausführen, ist der Berechtigungsheader verloren.
In Fiddler wird dieser Header jedoch erfolgreich übergeben.
Irgendeine Idee, was ich falsch mache?
Wann tritt Umleitung? Welchen HTTP-Code verwenden Sie für die Umleitung? – tia
@tia Ich bekomme 307 Temporary Redirect – Vadim
Nicht sicher, ob [das ist von Relevanz] (http://stackoverflow.com/questions/18914076/can-a-http-redirect-instruct-the-client-to-strip- a-specific-header-from-the-requ) – pixelbadger