WebServerESP8266 impossible de traiter 2 requêtes

Bonjour,
Dans le cadre de mon projet je souhaite recevoir la température d’une pièce via le module ESP8266.
La partie connection / config est OK, mais je bloque sur la partie code…
Mon code tras largement inspiré de celui ci ne produit pas le résultat escompté…
Le premier appel est OK (recupération de la chaine JSON avec valeur OK), mais au second appel (eg F5 ou appel depuis un autre navigatuerçla requête passe dans la section onNotFound…
En activant des log, il semblerait que le contenu de la requête soit "altéré’ avec le résultat précédent. Cf ci-dessous

Un petit coup de main serais très très apprécié ! Mes ‘‘vieux’’ et faibles reste de C++ sont surement en cause, mais je séche vraiment… :’(
Pas directement lié à arduino (il n’y en a pas dans ce montage) mais comme je penche pour un pb de devpt avec l’ide arduino je me permet de poster dans cette section.
Merci d’avance

Le code est simplifié sur certaine parties (pas de lecture de DS18B20…)

#include <ESP8266WiFi.h>
#include <WiFiClient.h>
#include <ESP8266WebServer.h>
#include <ArduinoJson.h>

#define AP_SSID "mySSID"
#define AP_PASSWORD "myPassword"

ESP8266WebServer server(80);


byte adresse[8]; // Tableau de 8 octets pour stockage du code d'adresse 64 bits du composant One Wire
String sensor_adress = "";
float  temp;  // Values read from sensor
String webString = "";   // String to display


struct SensorData {
  const char* name;
  String adr;
  float value;
};

void handle_root() {
  server.send(200, "text/plain", "Hello, please call /temp to get temperature");
  delay(100);
}

void handleNotFound() {
  server.send(200, "text/plain", "Can't handle the request");
  delay(100);
}
void gettemperature() {
 temp=23.51; // for debugging purpose (otherwise call DS18B20 sensor
}

void serialize(const SensorData& data, char* json, size_t maxSize)
{
  StaticJsonBuffer<200> jsonBuffer;
  JsonObject& root = jsonBuffer.createObject();
  root["sensor"] = data.name;
  root["value"] = double_with_n_digits(data.value, 2);
  root["adress"] = data.adr;
  root.printTo(json, maxSize);
}
void setup(void)
{
  Serial.begin(115200);  
  // Connect to WiFi network
  WiFi.begin(AP_SSID, AP_PASSWORD);
  Serial.print("\n\r \n\rWorking to connect");

  // Wait for connection
  while (WiFi.status() != WL_CONNECTED) {
    delay(500);
    Serial.print(".");
  }
  Serial.println("");
  Serial.print("Connected to ");
  Serial.println(AP_SSID);
  Serial.print("IP address: ");
  Serial.println(WiFi.localIP());
  
  server.on("/", handle_root);

  server.onNotFound(handleNotFound);
  

  server.on("/temp", []() { 
    gettemperature();       
    SensorData donnees;
    donnees.name = "temp1";
    donnees.value = temp;
    donnees.adr = "28 A8 FA 74 07 8A 00 24";//for debugging only
    char* val = "";
    serialize(donnees, val, 200);
  
    webString = String(val);
    server.send(200, "application/json", webString);
  });


  server.begin();
  Serial.println("HTTP server started");
 
}

void loop(void)
{
  server.handleClient();

}

Logs issus de la console à la première requête (OK)

New client
method: GET url: /temp search: 
headerName: Host
headerValue: 192.168.0.18
headerName: Connection
headerValue: keep-alive
headerName: Cache-Control
headerValue: max-age=0
headerName: Accept
headerValue: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
headerName: Upgrade-Insecure-Requests
headerValue: 1
headerName: User-Agent
headerValue: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
headerName: DNT
headerValue: 1
headerName: Accept-Encoding
headerValue: gzip, deflate, sdch
headerName: Accept-Language
headerValue: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
args: 
Request: /temp
 Arguments:

Logs issus de la console à la seconde requête

args: 
Request: /temp
 Arguments: 
New client
method: {"sensor":"temp1","value":23.51,"adress":"28 url: A8 search: {"sensor":"temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}Host: 192.168.0.18
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}Connection: keep-alive
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}Cache-Control: max-age=0
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}Upgrade-Insecure-Requests: 1
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/49.0.2623.110 Safari/537.36
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}DNT: 1
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}Accept-Encoding: gzip, deflate, sdch
headerName: {"sensor"
headerValue: temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}Accept-Language: fr-FR,fr;q=0.8,en-US;q=0.6,en;q=0.4
args: {"sensor":"temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}
args count: 1
pos 0=@ -1 &@ -1
arg missing value: 0
args count: 0
Request: A8
 Arguments: {"sensor":"temp1","value":23.51,"adress":"28 A8 FA 74 07 8A 00 24"}
request handler not found