2

WP7で簡単な投稿を処理するための次のコードがあります。

private void goto_login(object sender, RoutedEventArgs e)
{
   WebClient webClient = new WebClient();
   webClient.Headers["Content-Type"] = "text/xml";
   var uri = new Uri("http://example.com/wp_login", UriKind.Absolute);
   StringBuilder postData = new StringBuilder();
   postData.AppendFormat("{0}={1}", "username", HttpUtility.UrlEncode(username_box.Text));
   postData.AppendFormat("&{0}={1}", "password", HttpUtility.UrlEncode(password_box.Password));
   webClient.Headers[HttpRequestHeader.ContentLength] = postData.Length.ToString();
   webClient.UploadStringCompleted += new UploadStringCompletedEventHandler(webClient_UploadStringCompleted);
   webClient.UploadProgressChanged += webClient_UploadProgressChanged;
   webClient.UploadStringAsync(uri, "POST", postData.ToString());
}

void webClient_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
{
   Debug.WriteLine("result: "+e.Result);
}

void webClient_UploadProgressChanged(object sender, UploadProgressChangedEventArgs e)
{
   Debug.WriteLine(string.Format("Progress: {0} ", e.ProgressPercentage));
}

PHP側では、スクリプトは単にこれを行います。

var_dump($_POST);

これを行うと、私は常にサーバーからの空の配列になってしまいます。違いがある場合は、デバイスではなくエミュレーターで実行しています。私はここで何が間違っているのですか?

4

1 に答える 1

2

誰かが答えを探しているこの質問によって起こった場合、これは問題でした:

webClient.Headers["Content-Type"] = "text/xml";

次のように変更する必要があります。

webClient.Headers["Content-Type"] = "application/x-www-form-urlencoded";
于 2012-11-15T03:14:40.610 に答える