Sto costruendo un'applicazione in ASP.NET MVC (utilizzando C#) e vorrei sapere come posso eseguire chiamate come arricciatura http://www.mywebsite.com/clients_list.xml all'interno del mio controller Fondamentalmente mi piacerebbe costruire una specie di API REST per eseguire azioni come show edit e delete, come l'API di Twitter.ASP.NET MVC - Utilizzo di cURL o simile per eseguire richieste nell'applicazione
Ma purtroppo fino ad ora non ho trovato nulla oltre che cURL per le finestre su questo sito: http://curl.haxx.se/
Quindi non so se esiste un modo tradizionale per recuperare questo tipo di chiamata da URL con i metodi come post cancellare e inserire richieste, ecc ...
Mi piacerebbe solo sapere un modo semplice per eseguire comandi come curl all'interno del mio controller sulla mia applicazione ASP.NET MVC.
UPDATE:
Hi così sono riuscito a fare richieste GET, ma ora sto avendo un grave problema in recuperare POST Richiesta per esempio, sto utilizzando l'API stato di aggiornamento di Twitter che a ricciolo dovrebbe funzionare in questo modo:
curl -u user:password -d "status=playing with cURL and the Twitter API" http://twitter.com/statuses/update.xml
ma sulla mia applicazione ASP.NET MVC che sto facendo in questo modo dentro la mia funzione personalizzata:
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;
Ora il problema è che questa richiesta sta tornando 403 Forbidden, io davvero non so perché se funziona perfettamente su ricciolo
: \
UPDATE:
finalmente riesco per farlo funzionare, ma probabilmente c'è un modo per renderlo più pulito e bello, dato che sono nuovo su C# Avrò bisogno di più conoscenza per farlo, il modo in cui vengono passati i parametri POST mi rende molto confuso perché è un sacco di codice per passare semplicemente i parametri.
Bene, ho creato un Gist - http://gist.github.com/215900, quindi tutti si sentono liberi di rivederlo come preferisci. Grazie per il vostro aiuto Çağdaş
seguire anche il codice qui:
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
*/
}
I parametri di nome utente e password sono supposti come credenziali di rete o dati di post semplici? Non conosco l'API di Twitter, quindi sarebbe meglio se spiegassi cosa stai cercando di fare esattamente. –
BTW, sembra che potresti ottenere uno stato proibito 403 se hai raggiunto; 1. 1.000 aggiornamenti totali al limite del giorno. 2. 250 messaggi diretti totali al limite giornaliero. 3. 150 richieste API per limite orario. http://help.twitter.com/forums/10711/entries/15364 –
scusa, beh, in questo caso si sta tentando di connettersi al mio account Twitter da http://twitter.com/statuses/update.xml, quindi se provate ad accedere a questo dal vostro browser vedrete che richiede un nome utente e una password in modo che le credenziali su questo caso siano il nome utente e la password del mio account twitter, che stavo pensando che sarebbe lo stesso di curl -u username: password ... Quindi, in questo metodo l'applicazione si collegherà al mio account Twitter, invierà un nuovo tweet che invierà il parametro "status" + credenziali e recupererà la risposta che Twitter invierà di nuovo un file xml in questo caso. – zanona