2

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);
}

文字列dataは、の形式で正しく生成されますemail=test@test.com&password=hunter2

そして、イベントハンドラー関数...

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

フィールドがサーバーに正しく投稿されるようにするには、何をする必要がありますか?ありがとう!

4

1 に答える 1

2

wc.Headers["Content-Type"] = "application/x-www-form-urlencoded";コードにと を追加する必要がありwc.Encoding = Encoding.UTF8;ます。これにより、データがサーバーに正しく送信されます。以下のコードを参照してください。これは役に立ちます...

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 ploadStringCompletedEventHandler(wc_UploadStringCompleted);
    wc.Headers["Content-Type"] = "application/x-www-form-urlencoded";
    wc.Encoding = Encoding.UTF8;
    wc.UploadStringAsync(uri, "POST", data);
}
于 2013-09-21T10:53:47.170 に答える