2011-07-26 62 views
0

當我下載像這兩個相同的鏈接 a link!和http://files.sparklingclient.com/099_2010.07.09_WP7_Phones_In_The_Wild.mp3 他們都可以通過IE downloded。但是當我在wp7中下載的激光可以下載第一個顯示錯誤「」遠程服務器返回錯誤:NotFound。「」 我不知道爲什麼.is webURL不適合wp7?;發生錯誤「遠程服務器返回錯誤:NotFound。」

private void Button_Click(object sender, RoutedEventArgs e) 
{ 
    stringUri = "http://upload16.music.qzone.soso.com/30828161.mp3"; 
    //stringUri = "http://files.sparklingclient.com/079_2009.08.20_ElementBinding.mp3"; 
    Uri uri = new Uri(stringUri, UriKind.Absolute);    
    GetMusic(uri); 
} 
private void GetMusic(Uri uri) 
{ 
    request = WebRequest.Create(uri) as HttpWebRequest; 
    request.Method = "Post"; 
    request.ContentType = "application/x-www-form-urlencoded;charset=UTF-8";    
    string header= request.Accept; 
    request.BeginGetResponse(new AsyncCallback(GetAsynResult),request); 

} 
void GetAsynResult(IAsyncResult result) 
{   

    HttpWebResponse reponse = request.EndGetResponse(result) as HttpWebResponse; 
    if (reponse.StatusCode == HttpStatusCode.OK) 
    { 

     Stream stream=reponse.GetResponseStream(); 
     SaveMusic(stream, "music"); 
     ReadMusic("music"); 
     Deployment.Current.Dispatcher.BeginInvoke(
      () => 
      { 
       me.AutoPlay = true; 
       me.Volume = 100; 
       songStream.Position = 0; 
       me.SetSource(songStream); 
       me.Play(); 
      }); 

    }   
} 
protected void SaveMusic(Stream stream,string name) 
{ 

      IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication(); 
      if (!fileStorage.DirectoryExists("Source/Music")) 
      { 
       fileStorage.CreateDirectory("Source/Music"); 
      } 
      using (IsolatedStorageFileStream fileStream = IsolatedStorageFile.GetUserStoreForApplication().OpenFile("Source\\Music\\" + name + ".mp3", FileMode.Create)) 
      { 
       byte[] bytes = new byte[stream.Length]; 
       stream.Read(bytes, 0, bytes.Length); 
       fileStream.Write(bytes, 0, bytes.Length); 
       fileStream.Flush(); 
      } 

} 
protected void ReadMusic(string name) 
{ 

     using (IsolatedStorageFile fileStorage = IsolatedStorageFile.GetUserStoreForApplication()) 
     { 
      songStream = null; 
      songStream = new IsolatedStorageFileStream("Source\\Music\\" + name + ".mp3", FileMode.Open, fileStorage);     

     } 

} 
+0

你應該停止使用谷歌翻譯的問題。 –

+0

感謝您的建議,下次我會使用bing翻譯;或者您可以幫我 –

回答

1

請嘗試更改

request.Method = "Post" 

request.Method = "Get" 
+0

+1好了!不過,爲了兼容性,它實際上應該是'GET'(大寫)。 –

0

如果你是在模擬器上運行了這個問題,你有沒有嘗試運行Fiddler?它將攔截HTTP請求,並且您可以看到正在對服務器進行的呼叫是否是您期望的。

記得在啓動Fiddler後關閉/重新打開模擬器,以便它能夠接收代理。

NotFound響應也可能發生在SSL證書不正確的情況下。這似乎與您的問題沒有關係,但需要記住。

相關問題