WebRequête pour se connecter à l'API Wikipedia
Cela peut être un pathétiquement problème simple, mais je n'arrive pas à formater le post webrequest/réponse afin d'obtenir des données à partir de la Wikipédia API. J'ai posté mon code ci-dessous, si quelqu'un peut m'aider à voir mon problème.
string pgTitle = txtPageTitle.Text;
Uri address = new Uri("http://en.wikipedia.org/w/api.php");
HttpWebRequest request = WebRequest.Create(address) as HttpWebRequest;
request.Method = "POST";
request.ContentType = "application/x-www-form-urlencoded";
string action = "query";
string query = pgTitle;
StringBuilder data = new StringBuilder();
data.Append("action=" + HttpUtility.UrlEncode(action));
data.Append("&query=" + HttpUtility.UrlEncode(query));
byte[] byteData = UTF8Encoding.UTF8.GetBytes(data.ToString());
request.ContentLength = byteData.Length;
using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}
using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
{
//Get the response stream.
StreamReader reader = new StreamReader(response.GetResponseStream());
divWikiData.InnerText = reader.ReadToEnd();
}
source d'informationauteur NickJ
Vous devez vous connecter pour publier un commentaire.
Vous pourriez vouloir essayer une requête GET d'abord parce que c'est un peu plus simple (vous aurez seulement besoin de POSTER pour wikipédia de connexion). Par exemple, essayez de simuler cette demande:
Voici le code:
Edit: L'autre problème qu'il connaît sur le POST de demande de a été,
The exception is : The remote server returned an error: (417) Expectation failed.
Il peut être résolu par la mise en:(Ce qui est de: HTTP POST Renvoie l'Erreur: 417 "Échec de l'Attente.")
Je suis actuellement dans la phase finale de la mise en œuvre d'un C# MediaWiki API qui permet un script de plus de MediaWiki visualisation et l'édition des actes.
Les principales API est ici: http://o2platform.googlecode.com/svn/trunk/O2%20-%20All%20Active%20Projects/O2_XRules_Database/_Rules/APIs/OwaspAPI.cs et voici un exemple de l'API à utiliser:
Vous semblez être en poussant les données d'entrée sur HTTP POST, mais il me semble que vous devriez utiliser HTTP GET.
De l'API MediaWiki docs: