2017-01-25 2 views
1

질문에 따라, 나는 POST json에 http하지만 GET 사용할 때 출력이 지 않습니다.HttpWebRequest 게시하지 게시

나는 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(); 

답변

4

응답을 요구하는 사람이 아니므로 요청을하지 않는 것입니다. 그냥 추가 : "GET"코드가 예외 안전하지

using (var response = request.GetResponse()) 
{ 
    // Use the response 
} 

주 - 대신 명시 적으로 Close를 호출 using 문을 사용해야합니다.

+0

'POST '에 응답을 추가해야합니까? – active92

+1

@ active92 : 무슨 뜻인지 모르겠다. 당신의 코드는 * 클라이언트 코드이다. 응답을 추가하는 것은 귀하에게 달려 있습니다. 그러나 당신이'GetRespose()'를 부를 때까지는 요청을하지 않을 것입니다. 서버가 빈 응답 본문을 반환하는 것이 좋습니다. –

+0

응답 코드를 추가했으나 원격 서버가 오류를 반환했습니다 : ' – active92

관련 문제