2010-11-21 21 views
1

Oldukça uzun zamandır kullandığım bir eklentim var ve temelde bir istek göndermek için sadece Yuva kullanır. Sorun, bir oyun sunucusundaki eklentiyi kullandığınızda, çerezleri saklamak için önce makinede SteamCommunity.com'a giriş yapmanız gerekmektedir. Önce siteye HTTPS ile bağlanarak bu adımı hafifletmek için C++ 'ya dönüştürmek istiyorum. LibCurl'u kullanmamdan bu yana çok uzun zaman geçti ve bunu kurmak için ihtiyacım olan bilgiyi bulmakta fazla şansım yok.C++ LibCurl Gönder HTTPS İstek

Temel olarak, sadece bunun için doğru yolu ve diğer CURLOPT_ ayarlarını kullanmam gerekip gerekmediğini merak ediyorum.

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

cevap

0

Bir kullanıcı başlığını gönderdiği anlaşılan ve muhtemelen CURLOPT_HTTPHEADER istiyorum. Bunu yaratmak için curl'in listesini kullanmalısın.

C++ ile C yerine yazmak istiyorsanız, dizeleri düzgün kullanmayı öğrenmelisiniz. Yaptığınız gibi bir const char * 'a yazamazsınız, fakat "umarım yeterince büyük" olan yeni bir arabellek boyutu, C++' da dizeleri oluşturmanın yolu değildir. Muhtemelen std :: ostringstream'i böyle bir dize oluşturmak için kullanmak isteyebilirsiniz.