Управляемый C ++ или C # .NET, загрузка с Rapidshare? - PullRequest
0 голосов
/ 03 января 2011

Я пытаюсь загрузить файл из Rapidshare через C ++ .NET, но у меня возникли некоторые проблемы.

Адрес раньше был "https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi", но он больше не работает, кто-нибудь знает, что это за новый? Код работает, но размер файла всегда составляет 1 КБ, я не думаю, что он подключается к нужному серверу.

private: void downloadFileAsync(String^ fileUrl)
{
    String^ uriString;

    uriString = "https://ssl.rapidshare.com/premzone.html";//"https://ssl.rapidshare.com";

    NameValueCollection^ postvals = gcnew NameValueCollection();
    postvals->Add("login", "bob");
    postvals->Add("password", "12345");
    // postvals->Add("uselandingpage", "1");

    WebClient^ myWebClient = gcnew WebClient();
    array<unsigned char>^ responseArray = gcnew array<unsigned char>(10024);
    responseArray = myWebClient->UploadValues(uriString, "POST", postvals);

    StreamReader^ strRdr = gcnew StreamReader(gcnew MemoryStream(responseArray));

    String^ cookiestr = myWebClient->ResponseHeaders->Get("Set-Cookie");

    myWebClient->Headers->Add("Cookie", cookiestr);
    //myWebClient->DownloadFileCompleted += gcnew AsyncCompletedEventHandler(myWebClient->DownloadFileCompleted);

    myWebClient->DownloadFileAsync(gcnew Uri(fileUrl),"C:\\rapid\\"+Path::GetFileName(fileUrl));   
}


private: System::Void button1_Click(System::Object^  sender, System::EventArgs^  e) 
{
    downloadFileAsync("http://rapidshare.com/files/440636806/ArcadeBackground.png");

}

1 Ответ

2 голосов
/ 04 января 2011

Rapidshare полностью пересмотрел их структуру в последнее время.Этот файл размером 1 КБ, вероятно, представляет собой HTML-текст, сообщающий о том, что вы делаете неправильно.

Редактировать

Используете ли вы Rapishare API ?Потому что ваш код совсем не похож на то, что я вижу на их странице документации.

...