Est-il possible de passer des paramètres avec une demande get HTTP
? Si oui, comment devrais-je alors le faire? J'ai trouvé un post-requete HTTP
(link). Dans cet exemple, la chaîne postData
est envoyée à un serveur Web. Je voudrais faire la même chose en utilisant obtenir à la place. Google a trouvé cet exemple sur HTTP
obtenir here. Cependant, aucun paramètre n'est envoyé au serveur Web.Comment faire une requête get get HTTP avec les paramètres
Répondre
Dans une requête GET, vous transmettez des paramètres dans le cadre de la chaîne de requête.
string url = "http://somesite.com?var=12345";
Première WebClient
est plus facile à utiliser; GET arguments sont spécifiés sur la chaîne de requête - la seule astuce est de se rappeler d'échapper à toutes les valeurs:
string address = string.Format(
"http://foobar/somepage?arg1={0}&arg2={1}",
Uri.EscapeDataString("escape me"),
Uri.EscapeDataString("& me !!"));
string text;
using (WebClient client = new WebClient())
{
text = client.DownloadString(address);
}
Ma façon préférée est la suivante. Il gère l'échappement et l'analyse pour vous.
WebClient webClient = new WebClient();
webClient.QueryString.Add("param1", "value1");
webClient.QueryString.Add("param2", "value2");
string result = webClient.DownloadString("http://theurl.com");
Merci, excellente réponse. –
L'objet WebRequest me semble être un travail trop fastidieux. Je préfère utiliser le contrôle WebClient.
Pour utiliser cette fonction, il vous suffit de créer deux NameValueCollections contenant vos paramètres et vos en-têtes de requête.
Tenir compte de la fonction suivante:
private static string DoGET(string URL,NameValueCollection QueryStringParameters = null, NameValueCollection RequestHeaders = null)
{
string ResponseText = null;
using (WebClient client = new WebClient())
{
try
{
if (RequestHeaders != null)
{
if (RequestHeaders.Count > 0)
{
foreach (string header in RequestHeaders.AllKeys)
client.Headers.Add(header, RequestHeaders[header]);
}
}
if (QueryStringParameters != null)
{
if (QueryStringParameters.Count > 0)
{
foreach (string parm in QueryStringParameters.AllKeys)
client.QueryString.Add(parm, QueryStringParameters[parm]);
}
}
byte[] ResponseBytes = client.DownloadData(URL);
ResponseText = Encoding.UTF8.GetString(ResponseBytes);
}
catch (WebException exception)
{
if (exception.Response != null)
{
var responseStream = exception.Response.GetResponseStream();
if (responseStream != null)
{
using (var reader = new StreamReader(responseStream))
{
Response.Write(reader.ReadToEnd());
}
}
}
}
}
return ResponseText;
}
Ajouter vos paramètres querystring (si nécessaire) comme NameValueCollection comme si.
NameValueCollection QueryStringParameters = new NameValueCollection();
QueryStringParameters.Add("id", "123");
QueryStringParameters.Add("category", "A");
Ajoutez vos en-têtes http (si nécessaire) en tant que NameValueCollection comme cela.
NameValueCollection RequestHttpHeaders = new NameValueCollection();
RequestHttpHeaders.Add("Authorization", "Basic bGF3c2912XBANzg5ITppc2ltCzEF");
Vous pouvez également transmettre la valeur directement via l'URL.
Si vous voulez appeler la méthode public static void calling(string name){....}
alors vous devriez appeler à l'aide HttpWebRequest webrequest = (HttpWebRequest)WebRequest.Create("http://localhost:****/Report/calling?name=Priya); webrequest.Method = "GET"; webrequest.ContentType = "application/text";
Assurez-vous que vous utilisez ?Object = value
dans l'URL
- 1. Comment créer une requête HTTP GET avec un formulaire
- 2. Plusieurs paramètres dans http get request
- 3. Comment coder les chaînes de requête HTTP GET en Perl?
- 4. Comment obtenir les paramètres de requête "GET" en JavaScript?
- 5. POSTing à un URI avec des paramètres de requête GET?
- 6. Comment envoyer une requête GET depuis PHP?
- 7. Comment créer une requête GET avec des paramètres, en utilisant JSF et les règles de navigation?
- 8. Simuler une XHR requête GET
- 9. URL Rediriger (avec des paramètres spécifiques GET)
- 10. WCF et HTTP GET
- 11. GWT: Capture des paramètres d'URL dans la requête GET
- 12. ThickBox de Jquery: ouverture d'une iframe avec les paramètres GET
- 13. HTTP persistantes GET variables PHP
- 14. Combinaison d'UrlRewriteFilter et de Struts 2 avec les paramètres get
- 15. PageViewer WebPart ne chargera pas l'URL avec les paramètres GET
- 16. Comment utiliser la requête HTTP GET en C# avec SSL? (violation de protocole)
- 17. Comment récupérer les paramètres de la méthode HTTP GET en utilisant javax.ws.rs. * Et Glassfish?
- 18. Comment obtenir les paramètres de la méthode get dans jsp?
- 19. Comment faire pour déclencher une requête GET sur un pseudo service REST en C#
- 20. Comment manipuler les nœuds provenant d'une requête $ .get?
- 21. Demande HTTP POST et GET pour WinXP
- 22. Réécrire les URL avec les requêtes GET
- 23. Charger les résultats d'une requête GET/POST dans VB.net
- 24. Comment renvoyer une variable GET dans Rails?
- 25. IE envoi POST au lieu de GET avec $ .get
- 26. Comment faire GET/POST la requête au serveur avec scriptaculous.js ou prototype.js
- 27. Comment accéder aux paramètres HTTP GET dans Nginx avant la version 0.7.8?
- 28. SEO - Liens et GET chaînes de requête
- 29. get chaîne de requête dans js/jquery
- 30. Comment puis-je remplacer une variable dans une requête get en PHP?
Si vous entrez l'URL complète, y compris les paramètres dans le adresse barre d'iexplore, puis-je obtenir la même réponse que faire une demande http obtenir de C# – CruelIO
Cela devrait être le cas. – EndangeredMassa
Ce code n'est pas C# ... – psyklopz