Also habe ich dieses einfache Beispiel: Ich sende eine HTTP-Anfrage von einem Client-PC, die ein PHP-Skript auf Raspberry Pi ausführen, um die Anzahl der Dateien in einem Verzeichnis dann eine zweite Anfrage, die ein PHP ausführen Skript, um sie zu löschen und dann das erste Skript erneut, um sicherzustellen, dass es funktioniert.Senden mehrere HTTP-Anfrage mit Wininet
Das Problem ist, dass das zweite Mal, wenn ich nach der Anzahl der Dateien frage, gibt es das Ergebnis des ersten Mal, dass ich die Funktion aufgerufen, auch das Skript, um die Dateien gelöscht zu löschen. Ich benutze wireshark im Netzwerk und ich sehe tatsächlich, dass die zweite Anfrage, die Datei zu zählen, nicht gesendet wird, ich verstehe nicht warum, ist es mein Code? oder aus dem HTTP-Protokoll?
Hier ist mein Code, gibt es nur die 2-Anfragen die Anzahl der ADL-Dateien zu zählen, damit ich nur auf wireshark, die nur auf Anfrage senden ist sehen:
#include "MA_DLLCPP.h"
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>
#include <wininet.h>
#include <string.h>
int main(int argc, char* argv[])
{
int error = 0;
char* result = 0;
DWORD dwBytes;
char ch [100] = "0";
char ligne [100] = "";
char ligne1 [100] = "";
HINTERNET Initialize,Connection,File;
//Création de la session internet
Initialize = InternetOpenA("pi",INTERNET_OPEN_TYPE_DIRECT,"","",0);
if(Initialize == NULL) return 1;
//Connection HTTP serveur-client
Connection = InternetConnectA(Initialize,"192.168.1.2",INTERNET_DEFAULT_HTTP_PORT,
NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
strcat(ligne, "IHM_DLD/services/");
strcat(ligne, "getADL");
strcat(ligne, ".php");
//Création de la requete HTTP
File = HttpOpenRequestA(Connection, "GET",ligne,NULL,NULL,NULL,0,0);
if(File == NULL) return 3;
//Envoi de la requete HTTP
if(HttpSendRequestA(File,NULL,0,NULL,0) == FALSE) return 4;
//Lecture de la réponse du serveur
if(InternetReadFile(File,&ch,1,&dwBytes) == FALSE) return 5;
while(InternetReadFile(File,&ch,1,&dwBytes))
{
// cas d'erreur en cas d'absence de retour
if(dwBytes != 1) break;
printf("%s",ch);
}
InternetCloseHandle(File);
InternetCloseHandle(Connection);
InternetCloseHandle(Initialize);
//Connection HTTP serveur-client
Connection = InternetConnectA(Initialize,"192.168.1.2",INTERNET_DEFAULT_HTTP_PORT,
NULL,NULL,INTERNET_SERVICE_HTTP,0,0);
//Création de la requete HTTP
File = HttpOpenRequestA(Connection, "GET",ligne,NULL,NULL,NULL,0,0);
if(File == NULL) return 3;
//Envoi de la requete HTTP
if(HttpSendRequestA(File,NULL,0,NULL,0) == FALSE) return 4;
//Lecture de la réponse du serveur
if(InternetReadFile(File,&ch,1,&dwBytes) == FALSE) return 5;
while(InternetReadFile(File,&ch,1,&dwBytes))
{
// cas d'erreur en cas d'absence de retour
if(dwBytes != 1) break;
printf("%s",ch);
}
InternetCloseHandle(File);
InternetCloseHandle(Connection);
InternetCloseHandle(Initialize);