Xamarin Android Httppost 请求

Xamarin Android Httppost Request

我正在尝试 post 调用我在本地主机上的网站 Api。但是我收到以下错误

result = {System.Net.WebException: The remote server returned an error: (415) Unsupported Media Type. at System.Net.HttpWebRequest.EndGetResponse (System.IAsyncResult asyncResult) [0x0005e] in /Users/builder/data/lanes/3511/f4db8a57/source/mono/mcs/class/System/Sy...

有人能帮忙吗?下面是我的代码:

private void click (Object sender, EventArgs e)
    {
        UserInfo user = new UserInfo(1, "hellohello@gmail.com", "helloss");
        String data = JsonConvert.SerializeObject(user);
        WebClient wc = new WebClient();
        wc.UploadStringAsync(new Uri("http://192.168.206.2:155/api/register"), data);
        wc.UploadStringCompleted += Wc_UploadStringCompleted;
    }

    private void Wc_UploadStringCompleted(object sender, UploadStringCompletedEventArgs e)
    {
        var result = e.Error;
    }

HTTP 规范指出:

415 不支持的媒体类型 415(不支持的媒体类型)状态代码表示源服务器拒绝为请求提供服务,因为有效负载的格式不受此方法的目标资源支持。格式问题可能是由于请求的指定内容类型或 Content-Encoding,或者是直接检查数据的结果。

您的服务器似乎有格式问题...尝试添加 headers 与 .Add("Accept", "aplication/json");

到目前为止,服务器只从您那里得到一个字符串,不知道它是 json、xml 还是其他。你只需要告诉他。

您可以在 WebClient 上通过:

wc.Add("Content-Type", "aplication/json");

如果您正在使用 HttpClient,则必须通过 Content 属性:

进行设置
request.Content = new StringContent("json", Encoding.UTF8, "application/json");