C# 从windows phone 7向服务器发送请求

C# 从windows phone 7向服务器发送请求,c#,windows-phone-7,windows-phone-7.1,C#,Windows Phone 7,Windows Phone 7.1,我是WP7的初学者。我需要向服务器发送一个请求。请求包括用户名、密码和身份验证标头。如果成功,我将以xml形式从服务器获取一些数据。如何将请求发送到服务器?试试这个: void SendRequest() { WebClient wc = new WebClient(); wc.DownloadStringAsync(new Uri("http://somesite.com/webservice")); wc.DownloadStringCompleted +=Downl

我是WP7的初学者。我需要向服务器发送一个请求。请求包括用户名、密码和身份验证标头。如果成功,我将以xml形式从服务器获取一些数据。如何将请求发送到服务器?

试试这个:

void SendRequest()
{
    WebClient wc = new WebClient();
    wc.DownloadStringAsync(new Uri("http://somesite.com/webservice"));
    wc.DownloadStringCompleted +=DownloadStringCompleted;
}

void DownloadStringCompleted(object sender, DownloadStringCompletedEventArgs e)
{
    Debug.WriteLine("Web service says: " + e.Result);
}
WebClient webClient = new WebClient();
webClient.DownloadStringCompleted += (s, e) =>
{
    string xml = e.Result;
};
webClient.DownloadStringAsync(new Uri("http://..." + your params));

您当然不应该使用
WebClient
类,因为它在UI线程上执行,因此会导致应用程序锁定,请查看
HttpWebRequest

这里有一个很好的例子:

要添加标题,您可以访问
HttpWebRequest.headers
属性,以便根据此属性添加基本授权标题 或者,您可以使用HttpWebRequest.Credentials属性(有关更多详细信息,请参阅)


您希望检查响应的状态代码以验证身份验证是否成功,因此您可以访问
HttpWebResponse.StatusCode
属性,查看它是否为401(未经授权)。

请求什么?您需要呼叫Web服务吗?Http url?到目前为止,您尝试了什么?@Nelson T Joseph您找到这个解决方案了吗???如果您是WP7的初学者(如询问者),请不要(无论您做什么)按照答案建议使用WebClient,请参阅Mango WebClient和HttpWebRequest中的详细信息,这两个客户端都是在调用它们的线程中执行的。我不是WP7的初学者。但我几乎所有的经验都在XNA和游戏开发中,我没有注意到这些问题。非常感谢,我将在我的项目中进行一些额外的测试。使用Mango update,WebClient和HttpWebRequest之间没有区别——它们都是在调用它们的线程中执行的。