コンテンツ本文でHTTP GETリクエストを送信する必要があります。はい、私はこれが怒られていることを知っていますが、それは技術的に法的な取引です。.NET HTTP GET with Body
現在、以下のように要求ストリームを取得しようとすると、.NET WebRequestクラスが失敗します。
string url = "https://someplace.com/api";
var wr = WebRequest.Create(url);
wr.Method = "GET";
string json = JsonConvert.SerializeObject(query);
byte[] byteData = Encoding.UTF8.GetBytes(json);
using (var req = wr.GetRequestStream()) // Exception thrown here
{
req.Write(byteData, 0, byteData.Length);
req.Flush();
}
その他のオプションはありますか?
同等CURLコマンドは次のとおりです。
curl -XGET 'localhost:9200/twitter/tweet/_search?pretty' -d'
{
"query" : {
"term" : { "user" : "kimchy" }
}
}'
「この回答」(http://stackoverflow.com/a/983458/22099)を読んで、「法的な取引」でないことが分かります。一方、あなたが主張するならば、あなたは単に低レベルに行き、自分で接続を確立しバイトを送ることができます。 – miha
@miha私は、身体を送ってはいけないと言われているところは見ません。意味がないはずですが、ElasticSearch APIは非常に長いURLにシリアライズされる複雑なクエリを定義するために使用します。 重要なのはそれだけでは意味がないとは言いません。 – fungus1487
必須ではありませんが、[推奨](https://tools.ietf.org/html/rfc2616#section-4.3)では使用できません。これは、リクエストに複数のレイヤー(プロキシ、ロードバランサ)がある可能性があるためです。 GETリクエストは途中でキャッシュされ、ボディは無視されます。スタック全体を制御していない場合、バグが発生する可能性があります。 –