将JSON发布到Azure网站

时间:2015-03-19 22:12:41

标签: c# azure

我有一个使用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存储有利于本地存储。

1 个答案:

答案 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存储。