WebRequest zu verbinden, um die Wikipedia-API
Kann dies ein pathetisch einfaches problem, aber ich kann nicht scheinen, um format der post-webrequest/- response, um Daten aus der Wikipedia API. Ich habe meinen code unten, wenn jemand kann mir helfen, siehe mein problem.
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();
}
Auf den ersten Blick du bist der code sieht gut aus. Wie tritt das problem speziell präsentieren Sie sich? Was ist die Ausnahme?
Die Ausnahme : Der Remoteserver hat einen Fehler zurückgegeben: (417) Expectation failed.
Versuchen, mein code unten. Es arbeitete.
Müssen Sie System hinzufügen.Net.ServicePointManager.Expect100Continue = false; Siehe stackoverflow.com/questions/566437/...
Ich möchte Euch beide einigen rep-Punkte für so hilfreich. Aber ich habe nicht genug noch. Trotzdem danke Jungs. Ich werden den Besuch der Stack wieder. Keltex - vielleicht könnten Sie einfach Bearbeiten Sie Ihre post mit der Antwort, so dass andere Leute sehen können, die Antwort. cheers Nick
Die Ausnahme : Der Remoteserver hat einen Fehler zurückgegeben: (417) Expectation failed.
Versuchen, mein code unten. Es arbeitete.
Müssen Sie System hinzufügen.Net.ServicePointManager.Expect100Continue = false; Siehe stackoverflow.com/questions/566437/...
Ich möchte Euch beide einigen rep-Punkte für so hilfreich. Aber ich habe nicht genug noch. Trotzdem danke Jungs. Ich werden den Besuch der Stack wieder. Keltex - vielleicht könnten Sie einfach Bearbeiten Sie Ihre post mit der Antwort, so dass andere Leute sehen können, die Antwort. cheers Nick
InformationsquelleAutor NickJ | 2009-04-21
Du musst angemeldet sein, um einen Kommentar abzugeben.
Möchten Sie vielleicht versuchen, einen GET-request zuerst, weil es ein wenig einfacher (Sie brauchen nur POST für wikipedia-login). Zum Beispiel, versuchen Sie, um dies zu simulieren Anfrage:
Hier der code:
Edit: Das andere problem, das er zu erleben war auf den POST-request war,
The exception is : The remote server returned an error: (417) Expectation failed.
Es kann gelöst werden, indem die Einstellung:(Dies ist aus: HTTP-POST Gibt Fehler: 417 "die Erwartung ist Fehlgeschlagen.")
Nick, können Sie bitte lassen Sie uns wissen, welche Art von problem mit dem POST-Anforderung anzeigt. Was ist die Ausnahme, die Sie bekommen? Wie wird es sich Verhalten?
Die Ausnahme ist : Ausnahme : Der Remoteserver hat einen Fehler zurückgegeben: (417) Expectation failed.
Keltex nochmals vielen Dank , für die Get-request-code. Ich brauche wirklich einige Idee, wie Sie die Get-Anforderung, als schließlich würde ich mag, um zu versuchen einloggen und die Seiten Bearbeiten.
Müssen Sie System hinzufügen.Net.ServicePointManager.Expect100Continue = false; Siehe stackoverflow.com/questions/566437/...
InformationsquelleAutor Keltex
Ich bin derzeit in den letzten Phasen der Implementierung einer C# MediaWiki-API, die ermöglicht das einfache scripting von den meisten MediaWiki-anzeigen und Bearbeiten von Aktionen.
Die wichtigsten API ist hier: http://o2platform.googlecode.com/svn/trunk/O2%20-%20All%20Active%20Projects/O2_XRules_Database/_Rules/APIs/OwaspAPI.cs und hier ist ein Beispiel für die API-Verwendung:
Tut mir Leid, dass ich verschoben, dass die API erst kürzlich zu einer zentralen Lage. Sie finden diese Datei hier: o2platform.googlecode.com/svn/trunk/O2_Scripts/APIs/MediaWiki/... dies ist der Haupt-API verwendet, die auf die Datei o2platform.googlecode.com/svn/trunk/O2_Scripts/APIs/MediaWiki/... und dies ist ein GUI-tool, das über diese APIS o2platform.googlecode.com/svn/trunk/O2_Scripts/Tools/..., Wenn Sie möchten, um zu versuchen, die Skripte, Sie sind Teil der O2-Plattform, die Sie bekommen können, von o2platform.com
InformationsquelleAutor Dinis Cruz
Sie zu sein scheinen drücken der Eingabe-Daten über HTTP-POST, aber es scheint, Sie sollten die Verwendung von HTTP GET.
Aus der MediaWiki-API-docs:
InformationsquelleAutor Tommi Forsström