Questo può essere un problema pateticamente semplice, ma io non riesco a formattare il messaggio di WebRequest/risposta per ottenere i dati dal Wikipedia API. Ho pubblicato il mio codice qui sotto se qualcuno può aiutarmi a vedere il mio problema.WebRequest per connettersi al API Wikipedia
risposta
Si potrebbe desiderare di provare una richiesta GET prima perché è un po 'più semplice (si avrà solo bisogno di POST per il login wikipedia). Ad esempio, provare a simulare questa richiesta:
http://en.wikipedia.org/w/api.php?action=query&prop=images&titles=Main%20Page
Ecco il codice:
HttpWebRequest myRequest =
(HttpWebRequest)WebRequest.Create("http://en.wikipedia.org/w/api.php?action=query&prop=images&titles=Main%20Page");
using (HttpWebResponse response = (HttpWebResponse)myRequest.GetResponse())
{
string ResponseText;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
{
ResponseText = reader.ReadToEnd();
}
}
Edit: L'altro problema che stava sperimentando sulla richiesta POST è stato, The exception is : The remote server returned an error: (417) Expectation failed.
Si può essere risolto impostando :
(Questo da: HTTP POST Returns Error: 417 "Expectation Failed.")
Grazie Keltex, posso ottenere il Get a lavorare abbastanza facilmente. utilizzando: WebRequest req = WebRequest.Create (indirizzo + "?" + Dati) come WebRequest; utilizzando (WebResponse resp = req.GetResponse() come risposta Web) { Readme di streamReader = new StreamReader (resp.GetResponseStream()); divWikiData.InnerText = readme.ReadToEnd(); } Questa richiesta Inserisci mi ha caratteristiche sgrassanti ancora - e ho bisogno Post per alcune delle azioni della API consente .. – NickJ
Nick, può per favore farci sapere che tipo di problema vostra richiesta POST sta visualizzando. Qual è l'eccezione che ottieni? Come si sta comportando? –
L'eccezione è: l'eccezione è: il server remoto ha restituito un errore: (417) Expectation non riuscita. – NickJ
Sembra che tu stia spingendo i dati di input su HTTP POST, ma sembra che tu debba utilizzare HTTP GET.
Dalla documentazione API MediaWiki:
The API takes its input through parameters in the query string. Every module (and every action=query submodule) has its own set of parameters, which is listed in the documentation and in action=help, and can be retrieved through action=paraminfo. http://www.mediawiki.org/wiki/API:Data_formats
Sono attualmente nelle fasi finali di attuazione di un'API C# MediaWiki che consente la semplice script della maggior parte delle azioni di visualizzazione e la modifica di MediaWiki.
L'API principale è qui: http://o2platform.googlecode.com/svn/trunk/O2%20-%20All%20Active%20Projects/O2_XRules_Database/_Rules/APIs/OwaspAPI.cs e qui è un esempio di API in uso:
var wiki = new O2MediaWikiAPI("http://www.o2platform.com/api.php");
wiki.login(userName, password);
var page = "Test"; // "Main_Page";
wiki.editPage(page,"Test content2");
var rawWikiText = wiki.raw(page);
var htmlText = wiki.html(page);
return rawWikiText.line().line() + htmlText;
Il collegamento è rotto. Hai un link aggiornato? – Gabe
Mi dispiace, ho spostato l'API di recente in una posizione più centrale. Potete trovare il file qui: http://o2platform.googlecode.com/svn/trunk/O2_Scripts/APIs/MediaWiki/OwaspWikiAPI.cs questo è l'API principale utilizzato su quel file http://o2platform.googlecode.com/svn/trunk/O2_Scripts/APIs/MediaWiki/O2MediaWikiAPI.cs e questo è uno strumento GUI costruito sulla cima di queste API http://o2platform.googlecode.com/svn/trunk/ O2_Scripts/Tools/MediaWikiEditor.cs.o2 Se vuoi provare questi script, fanno parte della piattaforma O2 che puoi ottenere da http://o2platform.com/ –
- 1. API di Wikipedia per geolocalizzazioni
- 2. API di Wikipedia per python
- 3. Come usare wikipedia api se esiste?
- 4. Utilizzando WebRequest API con pagina dell'evento
- 5. Wikipedia API: la ricerca di persone famose
- 6. Limiti dell'API di Wikipedia
- 7. soluzione semplice per Android webrequest
- 8. Impossibile utilizzare CNTLM per connettersi al pip
- 9. Impossibile connettersi al processo
- 10. Come ottenere il contenuto di Wikipedia utilizzando l'API di Wikipedia?
- 11. Impossibile connettersi al client dell'API di Google
- 12. Xamarin: connettersi al servizio Web ospitato localmente
- 13. JGit: connettersi al repository lontana
- 14. Impossibile connettersi al GitHub 443
- 15. Impossibile connettersi al database .mdf
- 16. Modo corretto per connettersi a Cassandra in un'applicazione web/api
- 17. Che cosa usa wikipedia per scalare?
- 18. PowerShell WebRequest POST
- 19. WebRequest asincroni con C#
- 20. Invoke-WebRequest GetSystemWebProxy()
- 21. Errore strano PostgreSQL: impossibile connettersi al database template1: impossibile connettersi al server: nessun file o directory
- 22. Invoke-WebRequest impostato timeout
- 23. Contenuto di infobox di Wikipedia
- 24. webRequest permission malformed
- 25. Come configurare database.yml per connettersi al contenitore Dockgre Postgres?
- 26. Impossibile connettersi al sito Web per l'iPhone App
- 27. Quale jar utilizzare per connettersi al server MS SQL
- 28. C# HttpWebRequest vs WebRequest
- 29. C'è qualche API in Java per accedere ai dati di wikipedia
- 30. Come ottenere l'ID di Wikidata per un articolo di Wikipedia tramite API?
A prima vista sei il codice sembra buono. Come si presenta in modo specifico il problema? Qual è l'eccezione? –
L'eccezione è: Il server remoto ha restituito un errore: (417) Expectation non riuscita. – NickJ
@NickJ: Prova il mio codice qui sotto. Ha funzionato. – Keltex