我有一个使用JsonTextWriter创建JSON格式字符串的字符串。如果我想将其存储在Azure网站中,我该如何与它进行交互?我正在考虑使用像
这样的httpWebRequest string webAddr = "http://{url to website}/test.json";
HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(webAddr);
httpWebRequest.ContentType = "application/json; charset=utf-8";
httpWebRequest.Method = "POST";
StringWriter strwriter = new StringWriter();
JsonTextWriter writer = new JsonTextWriter(strwriter);
writer.WriteStartObject();
writer.WritePropertyName("id");
writer.WriteValue(v.id);
writer.WriteEndObject();
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string json = strwriter.ToString();
streamWriter.Write(json);
}
但我似乎无法弄清楚如何将JSON实际发布到文件中。我错过了什么吗?
我认为可以存储在VM /网站的本地存储上以避免出现CORS问题,除非Blob存储有利于本地存储。
答案 0 :(得分:1)
你在那里,接下来你需要实际发送请求:
HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
您可以阅读返回的正文(如果需要):
using (httpWebResponse)
{
StreamReader reader = new StreamReader(httpWebResponse.GetResponseStream());
string response_body = reader.ReadToEnd();
}
假设您只是想将主体转储到文件系统(为了参数):
using (httpWebResponse)
{
...
using (var file = new FileStream("some\path\to\file.json",FileMode.Create,FileAccess.Write,FileShare.None))
{
StreamWriter writer = new StreamWriter(file,Encoding.UTF8);
writer.Write(response_body);
writer.Flush();
}
}
然而,这对于非VM网站来说不会起作用,因为您可能不得不将文件转移到blob存储。