djb*_*ter 5 httpwebrequest windows-phone-7
我不知道.我正在尝试从我正在为Windows Phone构建的应用程序上的REST服务中获取XML.我总是在以下行获得例外:
HttpWebResponse response = request.EndGetResponse(ar) as HttpWebResponse;
Run Code Online (Sandbox Code Playgroud)
我有以下设置(忽略坏网址,这只是一个例子..)
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());
...
}
Run Code Online (Sandbox Code Playgroud)
例外情况如下:
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)
Run Code Online (Sandbox Code Playgroud)
有人有主意吗?它是https,而不是http ..是导致问题的原因吗?谢谢.
mhe*_*384 15
这不是你的问题,但它可能对其他人有所帮助.我碰到了这个,因为我在GET请求上调用了BeginGetRequestStream().当然,这不是必要的,我应该刚刚调用BeginGetResponse().愚蠢的错误,但如果错误消息更有帮助,我会更快地想出来.
小智 8
我打赌这个问题是因为您设置了'ContentType'标题,但没有在您的请求中提供内容.请注意,尝试创建请求时会抛出协议异常.
您可能需要将"Accept"标头设置为"text/xml"而不是内容类型标头.
| 归档时间: |
|
| 查看次数: |
5541 次 |
| 最近记录: |