2017-01-25 29 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

関連する問題