2011-11-26 106 views
0

如何發送數據進行身份驗證到服務器?使用當前代碼:如何向Windows Phone 7發送POST請求?

WebClient MyWebClient = new WebClient(); 
     MyWebClient.OpenWriteCompleted += new OpenWriteCompletedEventHandler(MyWebClient_OpenWriteCompleted); 
     MyWebClient.Headers["User-Agent"] = "Mozilla/4.0 (compatible; ICS)"; 
     MyWebClient.OpenWriteAsync(new Uri("http://myserver.com/login"), "POST", "[email protected]&pass=mypassword"); 


    void MyWebClient_OpenWriteCompleted(object sender, OpenWriteCompletedEventArgs e) 
    { 
     throw new NotImplementedException(); 
    } 

此代碼後,如果程序嗅探器(HttpAnalyzer)看標題和響應內容,響應內容將被寫入:Request is not completed. waiting ...,和響應頭將是空的...... 如何發佈帖子請求?

+0

看一看這個問題: http://stackoverflow.com/questions/8052434/post-requests-on-wp7/8052527#8052527 – calum

+0

我將只使用Web客戶端 – arsenium

回答

0
//Making a POST request using WebClient. 


Function() 
{  
    WebClient wc = new WebClient(); 

    var URI = new Uri("http://your_uri_goes_here"); 

//如果需要編碼。

wc.Headers["Content-Type"] = "application/x-www-form-urlencoded"; 

//或任何其他編碼類型。

//如果任何密鑰所需

wc.Headers["KEY"] = "Your_Key_Goes_Here"; 

wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted); 

wc.UploadStringAsync(URI,"POST","Data_To_Be_sent");  

}

void wc__UploadStringCompleted(object sender, UploadStringCompletedEventArgs e) 

{ 

    try    
    {   
    MessageBox.Show(e.Result); 

//e.result獲取您對您的POST請求的響應。

} 

    catch(Exception exc)   
    {    
    MessageBox.Show(exc.ToString());    
    } 

} 
+0

wc_cart_session.UploadStringAsync(URI,「POST」,「Data_To_Be_sent」); 這一行給出錯誤。你確定它不應該是: wc.UploadStringAsync(URI,「POST」,「Data_To_Be_sent」); – donparalias

1

根據doc,當您關閉在參數OpenWriteCompleted事件中傳遞給您的流時,會實際發送內容。

由於您沒有正確關閉流,因此它不會發送任何內容。

+0

能告訴你一個例子請妥善保管好這條河的距離? – arsenium

+0

您用steam.Close()關閉一個流。 MSDN文檔是你的朋友。 –