Silverlight WebClient.UploadStringAsync未将数据正确发布到服务器

Silverlight WebClient.UploadStringAsync未将数据正确发布到服务器,silverlight,windows-phone-7,c#-4.0,Silverlight,Windows Phone 7,C# 4.0,我试图将电子邮件地址和密码发送到服务器,以便接收JSON。但是,以下代码从服务器接收到一个响应,指示未收到POST数据 private void BtnSignIn_Click(object sender, RoutedEventArgs e) { String email = Email.Text; String password = Password.Password; String data = "email=" + email + "&password=

我试图将电子邮件地址和密码发送到服务器,以便接收JSON。但是,以下代码从服务器接收到一个响应,指示未收到POST数据

private void BtnSignIn_Click(object sender, RoutedEventArgs e)
{
    String email = Email.Text;
    String password = Password.Password;

    String data = "email=" + email + "&password=" + password;

    WebClient wc = new WebClient();
    Uri uri = new Uri("http://api.server.com/login");

    wc.UploadStringCompleted += new UploadStringCompletedEventHandler(wc_UploadStringCompleted);
    wc.UploadStringAsync(uri, "POST", data);
}
字符串
数据
电子邮件格式正确生成=test@test.com&密码=hunter2

事件处理函数

private void wc_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
    MessageBox.Show(e.Result);
}

我需要做什么来确保字段正确发布到服务器?谢谢

您需要添加
wc.Headers[“Content Type”]=“application/x-www-form-urlencoded”
wc.Encoding=Encoding.UTF8在您的代码中。这将正确地将数据发布到服务器。
请参阅下面的代码,这将有助于您

private void BtnSignIn\u单击(对象发送方,路由目标方)
{
字符串email=email.Text;
字符串密码=password.password;
String data=“email=“+email+”&password=“+password;
WebClient wc=新的WebClient();
Uri=新的Uri(“http://api.server.com/login");
wc.UploadStringCompleted+=新的ploadStringCompletedEventHandler(wc_UploadStringCompleted);
wc.Headers[“内容类型”]=“应用程序/x-www-form-urlencoded”;
wc.Encoding=Encoding.UTF8;
UploadStringAsync(uri,“POST”,数据);
}

如果您的服务器需要,您可能忘记了将标题内容类型设置为application/x-www-form-urlencoded?您是否使用Fiddler之类的工具调试了传输的内容?@RomanGolenok成功了!非常感谢。罗兰,我还没有用过像菲德勒这样的工具,但我将来会用的——谢谢<代码>wc.Headers[“内容类型”]=“应用程序/x-www-form-urlencoded”