Impossible d'envoyer le contenu du corps avec une requête GET
Je suis en train d'exécuter une simple "du corps de la requête de recherche" sur Elasticsearch comme le l'exemple suivant mais à l'aide .NET au lieu de curl
$ curl -XGET 'http://localhost:9200/twitter/tweet/_search' -d '{
"query" : {
"term" : { "user" : "kimchy" }
}
}
'
Ci-dessous est mon .NET code.
var uri = "http://localhost:9200/myindex/_search";
var json = "{ \"query\" : { \"term\" : { \"user\" : \"kimchy\" } } }";
var request = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(uri);
request.ContentType = "text/json";
request.Method = "GET";
var responseString = string.Empty;
using (var streamWriter = new System.IO.StreamWriter(request.GetRequestStream()))
{
streamWriter.Write(json);
streamWriter.Flush();
streamWriter.Close();
var response = (System.Net.HttpWebResponse)request.GetResponse();
using (var streamReader = new System.IO.StreamReader(response.GetResponseStream()))
{
responseString = streamReader.ReadToEnd();
}
}
Cependant, j'obtiens l'erreur suivante.
Cannot send a content-body with this verb-type.
...
Exception Details: System.Net.ProtocolViolationException: Cannot send a content-body with this verb-type.
...
Line 54: using (var streamWriter = new System.IO.StreamWriter(request.GetRequestStream()))
Est-il possible que je peux envoyer un contenu-corps avec un GET
demande l'aide de la norme .NET classes. Ou est-il une solution?
OriginalL'auteur Kevin Brydon | 2014-12-11
Vous devez vous connecter pour publier un commentaire.
La modification de la
Method
àPOST
est une solution de contournement.MSDN stipule qu'un
ProtocolViolationException
sera levée si leGetResponseStream()
méthode est appelée avec unGET
ouHEAD
méthode.OriginalL'auteur Kevin Brydon