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

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
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
Jusqu'à la semaine dernière, tout fonctionnait correctement.
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