ASP.NET MVC - Mit cURL oder ähnliches durchführen Anforderungen in der Anwendung

Ich Baue eine Anwendung in ASP.NET MVC (C#) und ich würde gerne wissen, wie ich ausführen können Anrufe wie curl http://www.mywebsite.com/clients_list.xml in meinem controller
Grundsätzlich würde ich gerne bauen, eine Art REST-API zum ausführen von Aktionen wie die anzeigen, Bearbeiten und löschen, wie Twitter-API.

Aber leider bis jetzt ich habe nichts gefunden, außer, dass cURL für windows auf dieser website: http://curl.haxx.se/

Also ich weiß nicht, ob es einen traditionellen Weg zum abrufen dieser Art von aufrufen von URL mit Methoden wie post löschen und setzen Sie auf die Anfragen, etc...

Nur ich würde gerne wissen, eine einfache Möglichkeit zum ausführen von Kommandos wie curl in meinem controller auf meinem ASP.NET MVC-Anwendung.


UPDATE:

Hi also schaffte ich Anfragen BEKOMMEN, aber jetzt ich habe ein ernstes problem in abrufen von POST-Anforderung, zum Beispiel, ich bin über die update-status-API von Twitter ist, dass in curl funktionieren würde wie dieses:

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

aber auf meinem ASP.NET MVC-Anwendung, die ich mache, wie dies in meinem benutzerdefinierten Funktion:

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;

Nun das problem ist, dass diese Anforderung ist Rückkehr 403 Forbidden,
Ich weiß wirklich nicht, warum, wenn es funktioniert perfekt auf curl

:\


UPDATE:

Ich endlich geschafft es zum laufen zu bringen, aber wahrscheinlich gibt es einen Weg, um es sauberer und schöner, als ich bin neu in C# ich muss mehr wissen, um es zu tun, die Art und Weise der POST-params übergeben werden, macht mich sehr verwirrt, da ist eine Menge code einfach passieren params.

Gut, ich habe eine Gist - http://gist.github.com/215900 , damit sich jeder fühlen Sie sich frei, ihn zu überarbeiten, wie Sie. Vielen Dank für Ihre Hilfe çağdaş

Folgen auch den code hier ein:

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
    */
}
Sind diese Benutzernamen und Kennwörter Parameter sein soll-Netzwerk-Anmeldeinformationen oder einfach post-Daten? Ich weiß nicht, die twitter-API, so dass es besser wäre, wenn du erklären, was genau Sie zu tun versuchen.
BTW, es scheint, dass Sie bekommen konnte, einen 403 forbidden-status, wenn Sie erreicht wird ; 1. 1.000 Gesamt-updates pro Tag beschränken. 2. 250 Gesamt direkte Nachrichten pro Tag begrenzen. 3. 150 API-Anfragen pro Stunde zu begrenzen. help.twitter.com/forums/10711/entries/15364
sorry, gut, dass in diesem Fall versuchen, eine Verbindung zu meinem twitter-account von twitter.com/statuses/update.xml, also, wenn Sie versuchen, Zugriff auf diese von Ihrem browser, Sie werden sehen, dass es fragt nach einem Benutzernamen und Passwort die Anmeldeinformationen in diesem Fall wäre mein twitter-account Benutzername und Passwort, die ich dachte, dass wäre das gleiche curl -u username:Passwort ... Also diese Methode würde die Anwendung eine Verbindung zu meinem twitter-account posten Sie eine neue tweet senden der parameter "status"+ Anmeldedaten, und empfangen der Antwort, dass twitter uns zurück senden einer xml-Datei in diesem Fall.
danke, zum Glück ist dieser limit mit twitter wurde nicht erreicht, doch ich kann immer noch tun Sie es über curl rechts jetzt, aber nicht mit c#
Ich konnte nicht finden die Informationen, die den status param geschrieben werden sollte. Denn wenn das in die post-Daten, dann ist dein Beispiel falsch ist. Ich werde noch mein edit beantworten und geben ein Beispiel Buchungsdaten.

InformationsquelleAutor zanona | 2009-10-22

Schreibe einen Kommentar