Pushover Dienst mittels WinAPI



  • Hallo,

    ich beschäftige mich gerade mit dem Dienst Pushover, welcher Pushnachrichten aufs Smartphone schicken lassen kann. Auf der Seite sind auch Code samples: http://pushover.net/

    Nun möchte ich das mit einem C++ Programm machen was aber nicht klappt. Hat jemand eine Idee? StatusCode ist immer 0.

    Hier mein Code

    HINTERNET hInternet = InternetOpen("MyApp", INTERNET_OPEN_TYPE_PRECONFIG, NULL, NULL, 0);
    
    HINTERNET hConnect = InternetConnect(hInternet, "http://api.pushover.net", INTERNET_DEFAULT_HTTP_PORT, NULL, NULL, INTERNET_SERVICE_HTTP, 0, 0);
    
    const char* rgpszAcceptTypes[2] = {"application/json", NULL};
    HINTERNET hRequest = HttpOpenRequest(hConnect, "POST", "/1/messages.json", NULL, NULL, rgpszAcceptTypes, 0, 0);
    
    HttpAddRequestHeaders(hRequest, "Content-Type: application/json\r\n", -1, HTTP_ADDREQ_FLAG_ADD);
    
    char* JsonData = "{\"token\":\"<tok>\", \"user\":\"<usr>\", \"message\":\"HelloWorld\"}";
    //char* JsonData = "token:<tok> user:<usr> message:HelloWorld";
    
    HttpSendRequest(hRequest, NULL, 0, JsonData, strlen(JsonData));
    
    DWORD StatusCode = 0;
    DWORD StatusCodeLen = sizeof(StatusCode);
    HttpQueryInfo(hRequest, HTTP_QUERY_STATUS_CODE | HTTP_QUERY_FLAG_NUMBER, &StatusCode, &StatusCodeLen, NULL);
    
    InternetCloseHandle(hRequest);
    InternetCloseHandle(hConnect);
    InternetCloseHandle(hInternet);
    


  • In InternetConnect() muss dass "http://" raus für den Servernamen. StatusCode ist 400, also Bad Request.



  • Ich hab mit diesen Funktionen wenig Erfahrung, aber evtl. muss noch der "Content-Length" Header gesetzt werden, falls das HttpSendRequest nicht selbst tut?


Anmelden zum Antworten