2016-04-24 18 views
0

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); 

Antwort