2010-11-21 35 views
1

私はかなりの間使ってきたプラグインを持っていますが、基本的にはソケットを使ってリクエストを送信します。問題は、ゲームサーバー上でプラグインを使用するときに、まずCookieを保存するためにマシン上のSteamCommunity.comにログインする必要があることです。最初にHTTPSでサイトに接続することで、その手順を緩和するためにC++に変換したいと思います。私はLibCurlを使っていて、これを設定するのに必要な情報を見つけるのはあまりにも多くの運がありませんので、長い時間が経ちました。C++ LibCurlからHTTPSリクエストを送信する

基本的に私はこれについて正しい方向に進んでいるのか、他にどのようなCURLOPT_設定を使用する必要があるのだろうと思っています。

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

答えて

0

あなたはユーザーヘッダーを送信しているようで、おそらくCURLOPT_HTTPHEADERが必要です。これを作成するには、カールのスライスを使用する必要があります。

C言語ではなくC言語で書く場合は、文字列を正しく使用する方法を学ぶ必要があります。 const char *に書き込むことはできませんが、 "十分な大きさだ"という新機能を使用すると、バッファサイズはC++で文字列を構成する方法とは異なります。 std :: ostringstreamを使用して、そのような文字列を作成したいと思うでしょう。

関連する問題