Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/xamarin/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用HttpWebRequest发布数据?_C#_Xamarin_Httpwebrequest_Httprequest - Fatal编程技术网

C# 如何使用HttpWebRequest发布数据?

C# 如何使用HttpWebRequest发布数据?,c#,xamarin,httpwebrequest,httprequest,C#,Xamarin,Httpwebrequest,Httprequest,我有这个HttpWebRequest: var request = HttpWebRequest.Create("http://example.com/api/Phrase/GetJDTO"); request.ContentType = "application/json"; request.Method = "POST"; 但我需要向请求主体添加一个负载,如下所示: Jlpt = 2 有人能帮我一下,告诉我如何向帖子添加数据吗?你可以这样做 var request = HttpWebRe

我有这个
HttpWebRequest

var request = HttpWebRequest.Create("http://example.com/api/Phrase/GetJDTO");
request.ContentType = "application/json";
request.Method = "POST";
但我需要向请求主体添加一个负载,如下所示:

Jlpt = 2
有人能帮我一下,告诉我如何向帖子添加数据吗?

你可以这样做

var request = HttpWebRequest.Create("http://example.com/api/Phrase/GetJDTO");

var postData = "Jlpt = 2";
var data = Encoding.ASCII.GetBytes(postData);

request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
request.ContentLength = data.Length;

using (var stream = request.GetRequestStream())
{
    stream.Write(data, 0, data.Length);
}

var response = (HttpWebResponse)request.GetResponse();

var responseString = new StreamReader(response.GetResponseStream()).ReadToEnd();
但是在这种情况下,我建议您使用
HttpClient
而不是
HttpWebRequest

if (data != null)
{
    request.ContentType = "application/json";
    using (var stream = new StreamWriter(request.GetRequestStream()))
    {
        var serialized = JsonConvert.SerializeObject(data);
        stream.Write(serialized);
    }
}
else
{
    request.ContentLength = 0;
}

如果数据是要发送的任何对象

,请使用
HttpClient
而不是
HttpWebRequest
。它有一个更现代、异步的API,以及一种更直接的向请求添加有效负载的方法。非常感谢。您能解释一下为什么建议使用HttpClient吗?有什么区别?谢谢。你可以在这篇文章中找到更多细节