2011-11-26 103 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文档是你的朋友。 –