Bonjour,
J'ai un code que j'utilise depuis plusieurs années qui récupère une chaine Json donnée par une URL : https://www.bloomberg.com/markets2/a...mePeriod=daily
La fonction suivante est supposée récupérer cette chaine
Jusqu'à la semaine dernière, tout fonctionnait correctement.Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20 Function LectureGraphiqueJSON(ByVal vURL As String) As String ' permet de stocker dans une variable un texte renvoyé par une URL Dim http As MSXML2.XMLHTTP60 ' Lecture du flux Set http = New MSXML2.XMLHTTP60 http.Open "GET", vURL, False ' le 22/11/22, ajout de la ligne suivante http.setRequestHeader "Content-Type", "application/x-www-form-urlencoded" http.send ' En cas de réussite, le code renvoyé est 200 If (http.Status <> 200) Then LectureGraphiqueJSON = "" Else ' Transformation du JSON en VBA LectureGraphiqueJSON = http.responseText End If ' On libère les objets Set http = Nothing End Function
Mais depuis, cette fonction me renvoie un texte HTML qui n'a rien à voir, un truc qui commence par "<!doctype html>
<html lang="en">
<head>
<title>Bloomberg - Are you a robot?</title>
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="robots" content="noindex">
<style rel="stylesheet">
"
J'ai cru un moment que c'est le site web qui avait sécurisé son site pour empêcher que quelqu'un puisse interroger à distance via un code, mais mon code marche sur un autre ordinateur.
La cause de mon problème n'est donc pas le code mais la config de mon ordinateur visiblement.
Par exemple, je suis sous Win7 (alors que l'autre ordi est sous Win10 ou 11). Est-ce la cause ? Mais dans ce cas pourquoi ça marchait jusqu'à la semaine dernière ? Et existe-t-il une parade (un réglage à faire dans mon Win7 ou dans mon code) ?
Je pense que le site a dû changer quelque chose, pas forcément de rédhibitoire, qui fait que mon code ne peut plus fonctionner tel quel sous Win7. C'est pour ça que je poste ce message dans ce forum car je ne suis pas très connaisseur du fonctionnement intrinsèque de ces instructions VBA. De mémoire, je crois que j'avais trouvé ce code en cherchant sur internet une fonction qui récupère une chaine donnée par une URL