【发布时间】:2018-02-16 06:21:54
【问题描述】:
任务是将json中的类序列化并传递给服务器上的POST。我写了代码,它可以工作,但我有一种感觉,我做了很多不必要的事情。提示好的做法来解决我的问题。
//package - a serializable object that must be passed
JsonPackage package = new JsonPackage( userData );
DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer( typeof( JsonPackage ) );
WebRequest request = WebRequest.Create( "http://localhost:52733/set" );
request.ContentType = "application/json";
request.Method = "POST";
MemoryStream ms = new MemoryStream();
jsonFormatter.WriteObject( ms, package );
ms.Flush();
ms.Position = 0;
StreamReader sr = new StreamReader( ms );
string jsonString = sr.ReadToEnd();
StreamWriter sw = new StreamWriter( request.GetRequestStream() );
sw.Write( jsonString );
sr.Dispose();
sw.Dispose();
ms.Dispose();
request.GetResponse();
更新 感谢大家的回答,让我学到了很多东西。我接受了另一个建议,并写如下:
//package - a serializable object that must be passed
JsonPackage package = new JsonPackage( Data );
DataContractJsonSerializer jsonFormatter = new DataContractJsonSerializer( typeof( JsonPackage ) );
WebRequest request = WebRequest.Create( "http://localhost:52733/set" );
request.ContentType = "application/json";
request.Method = "POST";
using ( var stream = request.GetRequestStream() )
{
jsonFormatter.WriteObject( stream, package );
}
request.GetResponse();
告诉我我的决定有缺陷吗?
【问题讨论】:
标签: c#