0

我对任何网络类型的东西都不是很好(就 C# 而言),但我需要将数据(不是获取!)发布到 web url,然后返回它输出的内容。

到目前为止,我正在使用它来发布并确定它是否已登录。

//credentials
        string username = textBox1.Text;
        string password = textBox2.Text;

        using (WebClient client = new WebClient())
        {
            byte[] data = Encoding.Default.GetBytes("username="+username+"&password="+password);
            client.Headers["Content-Type"] = "application/Json";
            try
            {
                var response2 = client.UploadData(base_url + "/users/authenticate", "POST", data);
                MessageBox.Show(Encoding.Default.GetString(response2));
            }
            catch { }
        }

注意:我得到的错误是 400 bad request。有任何想法吗?

4

1 回答 1

-1

查看 vine 代码,我会说您需要向其发送 JSON 数据而不是 URL 数据。用这样简单的东西你可以写字符串。

String jsonData = "{\"username\": \"" + username + "\", \"password\": \"" + password + "\"}";

更新以添加编码并对 JSON 数据更加严格

PHP 的 JSON 解码器想要 UTF-8 编码的数据,所以也将编码行更改为

byte[] data = Encoding.UTF8.GetBytes(jsonData);
于 2013-08-31T22:33:58.157 回答