如何使用C#将JSON发布到服务器?

这是我正在使用的代码:

// create a request

HttpWebRequest request = (HttpWebRequest)

WebRequest.Create(url); request.KeepAlive = false;

request.ProtocolVersion = HttpVersion.Version10;

request.Method = "POST";

// turn our request string into a byte stream

byte[] postBytes = Encoding.UTF8.GetBytes(json);

// this is important - make sure you specify type this way

request.ContentType = "application/json; charset=UTF-8";

request.Accept = "application/json";

request.ContentLength = postBytes.Length;

request.CookieContainer = Cookies;

request.UserAgent = currentUserAgent;

Stream requestStream = request.GetRequestStream();

// now send it

requestStream.Write(postBytes, 0, postBytes.Length);

requestStream.Close();

// grab te response and print it out to the console along with the status code

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

string result;

using (StreamReader rdr = new StreamReader(response.GetResponseStream()))

{

result = rdr.ReadToEnd();

}

return result;

当我运行此命令时,总是会收到500个内部服务器错误。

我究竟做错了什么?

回答:

我这样做并且正在工作的方式是:

var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://url");

httpWebRequest.ContentType = "application/json";

httpWebRequest.Method = "POST";

using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))

{

string json = "{\"user\":\"test\"," +

"\"password\":\"bla\"}";

streamWriter.Write(json);

}

var httpResponse = (HttpWebResponse)httpWebRequest.GetResponse();

using (var streamReader = new StreamReader(httpResponse.GetResponseStream()))

{

var result = streamReader.ReadToEnd();

}

我编写了一个库以更简单的方式执行此任务,它在这里:https :

//github.com/ademargomes/JsonRequest

希望能帮助到你。

以上是 如何使用C#将JSON发布到服务器? 的全部内容, 来源链接: utcz.com/qa/400833.html

回到顶部