Ich versuche, eine Anfrage an eine API namens Pacer.gov zu stellen. Ich erwarte, dass eine Datei zurückgegeben wird, aber ich verstehe es nicht. Kann mir jemand mit dem helfen, was mir fehlt?Wie erstelle ich eine Fallanfrage von der Pacer.gov API?
So sieht mein C# Ruhe Aufruf wie folgt:
(Die Variable PacerSession ist das Authentifizierungscookie I (mit Hilfe von @ jonathon-Reinhart bekam), lesen Sie mehr darüber hier: How do I use RestSharp to POST a login and password to an API?)
var client = new RestClient("https://pcl.uscourts.gov/dquery");
client.CookieContainer = new System.Net.CookieContainer();
//var request = new RestRequest("/dquery", Method.POST);
var request = new RestRequest(Method.POST);
request.AddParameter("download", "1");
request.AddParameter("dl_fmt", "xml");
request.AddParameter("party", "Moncrief");
request.AddHeader("user-agent", "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/39.0.2171.71 Safari/537.36");
request.AddHeader("content-type", "text/plain; charset=utf-8");
request.AddHeader("accept", "*/*");
request.AddHeader("accept-encoding", "gzip, deflate, sdch");
request.AddHeader("accept-language", "en-US,en;q=0.8");
request.AddHeader("cookie", "PacerSession=" + PacerSession);
IRestResponse response = client.Execute(request);
Wenn ich einfach die URL https://pcl.uscourts.gov/dquery?download=1&dl_fmt=xml&party=Moncrief in Chrome eingeben, bekomme ich eine XML-Datei zurück. Wenn ich mir die IRestResponse anschaue, sehe ich nichts, was wie eine Datei aussieht. Ist etwas nicht in Ordnung mit meiner Anfrage oder bekomme ich die Datei zurück und muss nur wissen, wie man sie zurückholt?
Hier ist ein Teil der Datei, die ich zurück, wenn ich die URL direkt in den Browser zu verwenden:
Hier ist, was ich in VS zu sehen, wenn ich es debuggen und Blick auf die IRestResponse Variable:
UPDATE - 6/3/16
erhielt diese Antwort von Pacer tech Unterstützung:
Im erweiterten REST-Client wird eine HTTP 302-Antwort angezeigt (eine Weiterleitung an eine andere Seite). In einem normalen Browser wird die Weiterleitung automatisch verfolgt, ohne dass der Benutzer etwas sieht (selbst auf der URL im Browser). Der ARC folgt dieser Umleitung nicht automatisch auf die Zielseite. Sie können in der Kopfzeile der Antwort die Ziel-URL sehen, die die Ergebnisse enthält.
Wenn Sie diese URL manuell als HTTP GET-Anforderung ausschneiden und in die ARC einfügen, erhalten Sie die XML-Ergebnisse. Ich habe nie C# verwendet, aber es gibt normalerweise eine Eigenschaft, die mit Web-Clients verbunden ist, die den Client zwingen, der Umleitung zu folgen.
Ich habe versucht, das Hinzufügen dieses:
client.FollowRedirects = true;
aber ich sehe noch keine XML-Datei, wenn ich diesen Code debuggen:
IRestResponse response = client.Execute(request);
Wie bekomme ich die Datei? Muss ich etwas tun, um die Datei von der URL zu erhalten, an die sie weitergeleitet wird?
Von Ihrem Debugger Screenshot ist der Inhaltstyp _not_ xml. Es ist eine Webseite. Insbesondere die Pacer-Anmeldeseite. Noch genauer gesagt, die Pacer-Login-Seite mit einer Umleitung auf die Suchseite. (Schauen Sie sich die 'ContentType'-Eigenschaft und die' ResponseUri'-Eigenschaft an) – theB
Danke, dass Sie @theB beantwortet haben. Von dem, was ich vom technischen Support von Pacer bekommen habe, klingt es so, als ob die Anfrage umgeleitet wird. Ich habe versucht, die Option FollowRedirects einzuschalten, aber ich sehe immer noch nicht die XML-Datei. Wie bekomme ich die Datei von dieser umgeleiteten Seite? Ich habe meine ursprüngliche Frage mit den Informationen von Pacer aktualisiert. – boilers222