当前位置: 首页 > 编程语言 > C#

如何使用HttpWebRequestwithGET方法分享

时间:2023-04-10 12:44:45 C#

HowtouseHttpWebRequestwithGETmethod我有下面的代码,当方法是“POST”时可以正常工作,但是改成“GET”就不行了:HttpWebRequest请求=null;请求=HttpWebRequest.Create(uri)作为HttpWebRequest;request.ContentType="application/x-www-form-urlencoded;charset=UTF-8";request.Method="POST";//不适用于“GET”request.BeginGetRequestStream(this.RequestCallback,null);我使用“GET”方法得到ProtocolViolationExceptionexception。编辑:在查看了使用Reflector之后,似乎对“GET”方法进行了显式检查,如果设置该方法则会抛出异常。Edit2:我已经将我的代码更新为以下内容,但是当我调用EndGetResponse()时它仍然会抛出异常}else{request.BeginGetRequestStream(this.RequestCallback,state);在我的ResponseCallback函数中,我有这个:HttpWebResponseresponse=(HttpWebResponse)request.EndGetResponse(asyncResult);这也会引发异常。Answer上面的代码现在可以运行了,我忘记把Content-Type这一行去掉,导致抛出异常。+1用于调整和回答乔恩。工作代码如下:HttpWebRequestrequest=null;请求=HttpWebRequest.Create(uri)作为HttpWebRequest;request.Method="GET";//也支持POSTif(request.Method=="GET"){request.BeginGetResponse(this.ResponseCallback,state);}else{request.BeginGetRequestStream(this.RequestCallback,state);这是在文档中指定的。基本上GET请求并不意味着包含主体,因此没有合理的理由调用BeginGetRequestStream。发送内容类型的GET请求有意义吗?您是否尝试删除第三行?BeginGetRequestStream用于获取专用于将数据写入请求的流。这不适用于GET请求。BeginGetRequestStream方法的文档明确指出,如果方法是GET或HEAD,该方法将抛出ProtocolViolationException。士气:阅读文档;-)GetRequestStream的文档中指定,如果方法是GET,它将抛出ProtocolViolationException。但是,我在HTTP规范中找不到任何暗示这实际上是违反HTTP协议的建议。认为这是一个挑战。以上就是C#学习教程:如何使用HttpWebRequest配合GET方法分享全部内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。涉及侵权,请点击维权联系管理员删除。如需转载请注明出处: