2011-01-03 14 views
0

私はrapidshareからC++ .NET経由でファイルをダウンロードしようとしていますが、少し問題があります。Managed C++またはC#.NET、rapidshareからダウンロードしますか?

"https://ssl.rapidshare.com/cgi-bin/premiumzone.cgi"に使用されていたアドレスは動作しなくなりましたが、誰かが新しいものを知っていますか? コードは機能しますが、ファイルサイズは常に1KBです。正しいサーバーに接続しているとは思いません。

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

その1kBファイルの内容は何ですか? – CodesInChaos

+0

この言語はC++/CLIではなく、C++ .NETと呼ばれ、間違いなく「Managed C++」ではありません。最後の用語はVS2002とVS2003の一部であったC++/CLIがVS2005に出たときに死んでしまった "Managed Extensions for C++"の略語としてのみ使用されています。 –

答えて

2

最近、Rapidshareは構造を完全に見直しました。その1kbファイルはおそらくあなたが間違っていることを伝えるHTMLテキストです。

編集

あなたはRapishare APIを使用していますか?あなたのコードは、ドキュメントページに表示されているようなものではありません。

+0

フォルダ内のファイルがArcadeBackground.pngとして表示されますが、開いたときに画像が破損しているか破損しています。 – cruisx

+0

メモ帳で開くと cruisx

+2

これはjavascriptのリダイレクトで、新しいクエリ文字列のパラメータの一部はおそらく時間制限があります。最初にダウンロードして新しいURLを解析し、もう一度リクエストする必要があるようです。 –

関連する問題