2010-11-21 6 views
1

Ich habe ein Plugin, das ich seit einiger Zeit verwendet habe, und es verwendet im Grunde nur Sockets, um eine Anfrage zu senden. Das Problem ist, wenn Sie das Plugin auf einem Spieleserver verwenden, müssen Sie sich zuerst auf SteamCommunity.com auf dem Rechner einloggen, um den Cookie zu speichern. Ich möchte es in C++ konvertieren, um diesen Schritt zu erleichtern, indem ich mich zuerst mit HTTPS mit der Site verbinde. Es ist lange her, seit ich LibCurl benutzt habe und ich habe nicht viel Glück dabei, die Informationen zu finden, die ich brauche, um dies einzurichten.C++ LibCurl zu senden HTTPS Request

Grundsätzlich frage ich mich nur, ob ich den richtigen Weg gehe, und welche anderen CURLOPT_ Einstellungen ich verwenden muss.

void InviteToGroup(const char *pszAuthID) 
{ 
    CURL *curl; 
    CURLcode res; 

    const char *szCommunityID = GetCommunityID(pszAuthID); // User's Steam Community ID 
    const char *szCookie = "76561198018111441%7C%7CC7D70E74A3F592F3E130CCF4CAACD4A7B9CAD993"; // Steam Community Login Cookie 
    const char *szInviter = "76561194018311441"; // Inviter's Steam Community ID 
    const char *szGroup = "103583791430784257"; // Group Steam Community ID 

    const char *request = new char[2048]; 
    snprintf(request, 2047, "GET /actions/GroupInvite?type=groupInvite&inviter=%s&invitee=%s&group=%s HTTP/1.1\r\nHost: steamcommunity.com\r\nConnection: close\r\nCookie: steamLogin=%s\r\n\r\n", szInviter, szCommunityID, szGroup, szCookie); 

    curl = curl_easy_init(); 
    if(curl) 
    { 
     curl_easy_setopt(curl, CURLOPT_URL, "https://www.steamcommunity.com"); 
     curl_easy_setopt(curl, CURLOPT_USERPWD, "myusername:mypass"); 

     // Attempt to Connect the Steam Community Server 
     res = curl_easy_perform(curl); 

     // Close the connection 
     curl_easy_cleanup(curl); 
    } 
} 

Antwort

0

Sie scheinen eine Benutzerkopfzeile zu senden und wahrscheinlich CURLOPT_HTTPHEADER. Sie sollten Curls Slist verwenden, um dies zu erstellen.

Wenn Sie in C++ übrigens lieber als C schreiben möchten, sollten Sie lernen, Strings richtig zu verwenden. Wie es ist, können Sie nicht in ein const char * schreiben, aber die Verwendung von new mit einer "hoffe, es ist groß genug" -Puffergröße ist nicht die Art, wie Sie Strings in C++ konstruieren. Sie würden wahrscheinlich std :: ostringstream verwenden, um eine solche Zeichenfolge zu erstellen.

Verwandte Themen