Bonjour,
Je viens de m'inscrire sur le forum et ceci est mon premier poste. Je ne parviens pas à trouver de réponse à ma problématique malgré de nombreuses recherches.
Je suis derrière un proxy configuré dans un fichier PAC. Je cherche à appeler une api mais j'obtiens toujours un BadRequest. Je ne parviens pas à comprendre d'où vient le problème. Mon application est hébergée sur ISS mais j'obtiens le même résultat en local (avec IIS express).
J'ai fait une nouvelle application de test où je n'ai modifié que la procédure Configure du Startup.cs:
Il n'y a aucune interface utilisateur. Le but est de renvoyer le résultat Json vers une autre application qui affichera les données. C'est une sorte de "passe-plat" : l'application demandeuse est installée sur un serveur qui n'a pas accès à internet.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46 public void Configure(IApplicationBuilder app, IHostingEnvironment env) { if (env.IsDevelopment()) { app.UseDeveloperExceptionPage(); } AppContext.SetSwitch("System.Net.Http.UseSocketsHttpHandler", false); app.Run(async (context) => { NetworkCredential creds = new NetworkCredential { Domain = "Domain", UserName = "User", Password = "Pwd" }; WebProxy proxy = new WebProxy { Address = new Uri("http://foo.bar/proxy.pac"), Credentials = creds }; HttpClientHandler handler = new HttpClientHandler { UseProxy = true, Proxy = proxy }; HttpClient client = new HttpClient(handler, true); client.DefaultRequestHeaders.Accept.Clear(); client.DefaultRequestHeaders.Accept.Add(new MediaTypeWithQualityHeaderValue("application/json")); client.DefaultRequestHeaders.Authorization = new AuthenticationHeaderValue("Basic", "apiPwd"); string destAPIUrl = "https://api.blabla.com/function?param1=30¶m2=10¶m3=43"; HttpResponseMessage response = client.GetAsync(destAPIUrl).Result; if (response.IsSuccessStatusCode) await context.Response.WriteAsync(await response.Content.ReadAsStringAsync()); else await context.Response.WriteAsync(response.StatusCode.ToString() + " : " + response.ReasonPhrase); }); }
En vous remerciant de l'aide apporté,
Lykazia
Partager