Warum bin ich immer ProtocolViolationException wenn Sie versuchen, zu verwenden HttpWebRequest?

Habe ich keine Ahnung. Ich bin versucht, um XML-Daten aus einem REST-Dienst in eine app-ich Baue für Windows Phone. Ich bekomme immer eine exception in der folgenden Zeile:

HttpWebResponse response = request.EndGetResponse(ar) as HttpWebResponse;

Ich habe Folgendes setup (ignorieren Sie die schlechte url, es ist nur ein Beispiel .. )

HttpWebRequest request = WebRequest.Create("https://domain.chargify.com/customers.xml") as HttpWebRequest;
NetworkCredential credentials = new NetworkCredential("appkeyhere", "password");
request.Credentials = credentials;
request.Method = "GET";
request.ContentType = "text/xml";
request.BeginGetResponse(new AsyncCallback(SomeCallback), request);
...
private void SomeCallback(IAsyncResult ar) {
    HttpWebRequest request = ar.AsyncState as HttpWebRequest;
    HttpWebResponse response = request.EndGetResponse(ar) as HttpWebResponse;
    StreamReader reader = new StreamReader(response.GetResponseStream());
    XElement xmlResult = XElement.Parse(reader.ReadToEnd());
    ...
}

Ausnahme ist wie folgt:

System.Net.ProtocolViolationException was unhandled
Message=ProtocolViolationException
  StackTrace:
       at System.Net.Browser.ClientHttpWebRequest.PrepareAndSendRequest(String method, Uri requestUri, Stream requestBodyStream, WebHeaderCollection headerCollection, CookieContainer cookieContainer)
       at System.Net.Browser.ClientHttpWebRequest.BeginGetResponseImplementation()
       at System.Net.Browser.ClientHttpWebRequest.InternalBeginGetResponse(AsyncCallback callback, Object state)
       at System.Net.Browser.AsyncHelper.BeginOnUI(BeginMethod beginMethod, AsyncCallback callback, Object state)
       at System.Net.Browser.ClientHttpWebRequest.BeginGetResponse(AsyncCallback callback, Object state)
       at ChargifyWPA.MainPage.button1_Click(Object sender, RoutedEventArgs e)
       at System.Windows.Controls.Primitives.ButtonBase.OnClick()
       at System.Windows.Controls.Button.OnClick()
       at System.Windows.Controls.Primitives.ButtonBase.OnMouseLeftButtonUp(MouseButtonEventArgs e)
       at System.Windows.Controls.Control.OnMouseLeftButtonUp(Control ctrl, EventArgs e)
       at MS.Internal.JoltHelper.FireEvent(IntPtr unmanagedObj, IntPtr unmanagedObjArgs, Int32 argsTypeIndex, String eventName)

Jemand irgendwelche Ideen? Es ist https, nicht http .. ist, dass das Problem verursacht?
Danke.

  • Poste bitte die vollständige Ausnahme, und zeigen uns, wo die exception Auftritt. Auch in SomeCallback, müssen Sie platzieren Sie Ihre IDisposable-Instanzen in der Verwendung von Blöcken. HttpWebResponse, StreamReader und sogar der Strom alle müssen in using Blöcke, oder Sie werden unnötig Ressourcen verbraucht.
  • Hinzugefügt Ausnahme zu meiner Frage .. und ich hab so modifiziert, dass "verwenden" - Blöcke, die in Ordnung ist. Problem immer noch Auftritt.
  • Nicht sicher, ob dies ist der richtige Ort, es zu verlangen, aber könntest du bitte fügen Sie der Windows-Phone-7-tag zu diesem post?
InformationsquelleAutor djbyter | 2010-03-19
Schreibe einen Kommentar