2017-11-16 7 views
0

C#winformアプリケーションからREST経由でprotobufデータを送信しようとしています。 POSTメソッドでHTTPリクエストを使用すると(下のコードに示すように)、完全に動作し、「OK」ステータスを返します。POSTを使用しない場合のHTTPエラー403

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("https://xxxxx.execute-api.eu-west-1.amazonaws.com/test/input"); 
request.Headers["Authorization"] = "xxxyyyzzz"         
request.Method = "POST"; 
request.ContentType = "application/octet-stream"; 
byte[] bytes = System.IO.File.ReadAllBytes("C:\\MyProtobuf.proto"); 
request.ContentLength = bytes.Length; 
Stream requestStream = request.GetRequestStream(); 
requestStream.Write(bytes, 0, bytes.Length); 
HttpWebResponse myHttpWebResponse = (HttpWebResponse)request.GetResponse(); 
       MessageBox.Show(myHttpWebResponse .StatusCode.ToString()); 
myHttpWebResponse .Close(); 

しかし、私は単にウェブサイトは、それは私に403禁断のエラーを与えるコードの下に使用して生きているのかいないかどうかを確認したい場合。

このエラーの原因としてはどのようなものが考えられますか?

+0

HTTP取得要求にページが応答しない – DaImTo

+3

エラーの理由は、POST要求を期待するエンドポイントにGET要求を送信しているためです。 403はサイトが生存していると伝えますが、ヘルスチェックとして使用することはお勧めしません。 –

答えて

2

あなたのサービスはPOSTメソッド動詞を提供するので、postメソッドでこのサービスを呼び出す必要があります。そうしないと、getメソッドをサポートするようにサービスメソッドを変更する必要があります。

+0

健康診断としてPOSTメソッドを使用するにはどうすればいいですか? – Spark

+0

POSTとPOSTの違いはありませんHTTPの動詞なので、メソッドをPOST – mostafa

+0

に変更するだけでPOSTメソッドは常にペイロードが必要ですか? – Spark

関連する問題