根据问题,我 POST json 到 http 但是当我使用 GET 时我没有得到任何输出。
我正在尝试POST json 然后关闭流。我不需要关心回复。为了检查我的 POST 是否正常工作,我编写了 GET。
下面是我的POST代码。
var httpWebRequest = (HttpWebRequest)WebRequest.Create("http://localhost:1234/xxxxx/xxxx");
httpWebRequest.ContentType = "application/json";
httpWebRequest.Method = "POST";
using (var streamWriter = new StreamWriter(httpWebRequest.GetRequestStream()))
{
string eventData = "temp string";
string jsonEvent = JsonConvert.SerializeObject(eventData, Formatting.None, new JsonSerializerSettings { NullValueHandling = NullValueHandling.Ignore, Formatting = Formatting.Indented });
streamWriter.Write(jsonEvent);
}
var httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse(); //getting "The remote server returned an error:" here
using (var streamReader = new StreamReader(httpWebResponse.GetResponseStream()))
{
var result = streamReader.ReadToEnd();
}
下面是我从 msdn 获得的 GET 代码。
WebRequest request = WebRequest.Create("http://localhost:1234/xxxxx/xxxx");
WebResponse response = request.GetResponse();
Console.WriteLine(((HttpWebResponse)response).StatusDescription);
Stream dataStream = response.GetResponseStream();
StreamReader reader = new StreamReader(dataStream);
string responseFromServer = reader.ReadToEnd();
Console.WriteLine(responseFromServer);
reader.Close();
response.Close();
请您参考如下方法:
您从不要求回复,因此它不会发出请求。只需添加:
using (var response = request.GetResponse())
{
// Use the response
}
请注意,您的“获取”代码不是异常安全的 - 它应该使用 using 语句而不是显式调用 Close。
