ASP.NET MVC - Utilisation de cURL ou similaire à effectuer des demandes en application

Je suis en train de construire une application en ASP.NET MVC (à l'aide de C#) et je voudrais savoir comment je peux effectuer des appels comme curl http://www.mywebsite.com/clients_list.xml à l'intérieur de mon contrôleur
Fondamentalement, je voudrais construire une sorte d'API REST pour effectuer des actions comme le montrent les modifier et les supprimer, comme l'API Twitter.

Mais malheureusement, jusqu'à maintenant, je n'ai pas trouver quelque chose en plus qui s'enroulent pour windows sur ce site: http://curl.haxx.se/

Donc je ne sais pas si est-il de toute façon traditionnelle pour récupérer ce genre d'appel à partir de l'URL avec des méthodes comme post supprimer et de mettre sur les demandes, etc...

J'aimerais juste savoir un moyen facile d'exécuter des commandes comme le curl à l'intérieur de mon contrôleur sur mon ASP.NET Application MVC.


Mise à JOUR:

Salut, alors j'ai réussi à faire des Requêtes GET, mais maintenant, je vais avoir un sérieux problème à récupérer Requête POST pour exemple, je suis en utilisant l'état de mise à jour de l'API de Twitter qui, en curl, pourrait fonctionner comme ceci:

curl -u user:password -d "status=playing with cURL and the Twitter API" http://twitter.com/statuses/update.xml

mais sur mon ASP.NET application MVC je fais comme ça à l'intérieur de ma fonction personnalisée:

string responseText = String.Empty;
HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://twitter.com/statuses/update.xml");
request.Method = "POST";
request.Credentials = new NetworkCredential("username", "password");
request.Headers.Add("status", "Tweeting from ASP.NET MVC C#");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();
using (StreamReader sr = new StreamReader(response.GetResponseStream()))
{
    responseText = sr.ReadToEnd();
}
return responseText;

Maintenant, le problème est que cette demande est de retour 403 Forbidden,
Je ne sais vraiment pas pourquoi si il fonctionne parfaitement sur curl

:\


Mise à JOUR:

J'ai enfin réussi à le faire fonctionner, mais probablement il y a un moyen de le rendre plus propre et belle, comme je suis nouveau sur le C# je vais avoir besoin de plus de connaissance pour le faire, de la façon dont le POSTE params sont passés me rend très perplexe, parce que c'est beaucoup de code juste passer params.

Bien, j'ai créé un Gist - http://gist.github.com/215900 , de sorte que tous se sentent libres de le modifier aussi que vous allez faire. Merci pour votre aide çağdaş

également suivre le code ici:

public string TwitterCurl()
{
    //PREVENT RESPONSE 417 - EXPECTATION FAILED
    System.Net.ServicePointManager.Expect100Continue = false;

    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://twitter.com/statuses/update.xml");
    request.Method = "POST";
    request.Credentials = new NetworkCredential("twitterUsername", "twitterPassword");

    //DECLARE POST PARAMS
    string headerVars = String.Format("status={0}", "Tweeting from ASP.NET MVC C#");
    request.ContentLength = headerVars.Length;

    //SEND INFORMATION
    using (StreamWriter streamWriter = new StreamWriter(request.GetRequestStream(), ASCIIEncoding.ASCII))
    {
        streamWriter.Write(headerVars);
        streamWriter.Close();
    }

    //RETRIEVE RESPONSE
    string responseText = String.Empty;
    using (StreamReader sr = new StreamReader(request.GetResponse().GetResponseStream()))
    {
        responseText = sr.ReadToEnd();
    }

    return responseText;

    /*
    //I'M NOT SURE WHAT THIS IS FOR            
        request.Timeout = 500000;
        request.ContentType = "application/x-www-form-urlencoded";
        request.UserAgent = "Custom Twitter Agent";
        #if USE_PROXY
            request.Proxy = new WebProxy("http://localhost:3000", false);
        #endif
    */
}
Sont ceux nom d'utilisateur et mots de passe des paramètres censés être des informations d'identification réseau ou en simple post de données? Je ne connais pas l'API twitter, donc il serait mieux si vous expliquer ce qu'est exactement que vous essayez de faire.
BTW, il semble que vous pourriez obtenir un 403 forbidden statut si vous avez atteint ; 1. De 1 000 total des mises à jour par jour limite. 2. 250 total des messages directs par jour limite. 3. 150 demandes d'API par heure limite. help.twitter.com/forums/10711/entries/15364
désolé, eh bien, dans ce cas, il essaie de se connecter à mon compte twitter de twitter.com/statuses/update.xml, donc si vous essayez d'y accéder à partir de votre navigateur, vous verrez que cela vous demande un nom d'utilisateur et mot de passe pour les informations d'identification sur ce cas serait mon compte twitter nom d'utilisateur et le mot de passe, que je pensais que ce serait la même de curl -u username:le mot de passe ... Donc, dans cette méthode, l'application de se connecter à mon compte twitter poster un nouveau tweet envoyer le paramètre "status"+ informations d'identification, et la récupération de la réponse que twitter renvoie un fichier xml dans ce cas.
merci, heureusement que cette limite de débit avec twitter n'était pas encore atteint, je ne peux toujours le faire via curl, mais pas avec c#
Je ne pouvais pas trouver les informations sur la manière dont l'état de param doit être écrit. Parce que si ce doit être dans le post données, votre exemple est mauvais. Je vais encore modifier ma réponse et vous donner un exemple, la publication des données.

OriginalL'auteur zanona | 2009-10-22