加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > Windows > 正文

windows-phone-7 – 为什么我在尝试使用HttpWebRequest时会收到P

发布时间:2020-12-14 02:20:04 所属栏目:Windows 来源:网络整理
导读:我不知道.我正在尝试从我正在为 Windows Phone构建的应用程序上的REST服务中获取XML.我总是在以下行获得例外: HttpWebResponse response = request.EndGetResponse(ar) as HttpWebResponse; 我有以下设置(忽略坏网址,这只是一个例子..) HttpWebRequest requ
我不知道.我正在尝试从我正在为 Windows Phone构建的应用程序上的REST服务中获取XML.我总是在以下行获得例外:

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

我有以下设置(忽略坏网址,这只是一个例子..)

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());
    ...
}

例外情况如下:

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)

有人有主意吗?它是https,而不是http ..是导致问题的原因吗?
谢谢.

解决方法

我打赌这个问题是因为您设置了’ContentType’标题,但没有在您的请求中提供内容.请注意,尝试创建请求时会抛出协议异常.

您可能需要将“Accept”标头设置为“text / xml”而不是内容类型标头.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读