C# HttpWebRequest.GetRequestStream避免协议违反异常
当方法为C# HttpWebRequest.GetRequestStream避免协议违反异常,c#,asp.net-mvc,asp.net-web-api,httpwebrequest,C#,Asp.net Mvc,Asp.net Web Api,Httpwebrequest,当方法为GET时,是否有任何方法防止HttpWebRequest.GetRequestStream引发异常 我知道HEAD和GET不应该在有效的HTTP中包含正文,但有些服务器无论如何都接受这些方法的正文(例如,Elasticsearch的_搜索功能)。我必须调用一些GETAPI方法,从请求体检索参数 var uri = new Uri(@"someurl"); var request = (HttpWebRequest)WebRequest.Create(uri); request.Metho
GET
时,是否有任何方法防止HttpWebRequest.GetRequestStream
引发异常
我知道HEAD
和GET
不应该在有效的HTTP中包含正文,但有些服务器无论如何都接受这些方法的正文(例如,Elasticsearch的_搜索功能)。我必须调用一些GETAPI方法,从请求体检索参数
var uri = new Uri(@"someurl");
var request = (HttpWebRequest)WebRequest.Create(uri);
request.Method = "GET";
request.Accept = "*/*";
request.ContentType = "application/json";
var bytes = Encoding.GetEncoding("iso-8859-1").GetBytes(JsonConvert.SerializeObject(someObject));
request.ContentLength = bytes.Length;
using (var writeStream = request.GetRequestStream())
{
writeStream.Write(bytes, 0, bytes.Length);
}
删除行
request.ContentLength=bytes.Length
并检查它是否工作。@ViVi它没有帮助。然后将方法类型更改为POST
@MykhalikI无法使用POST
,我必须调用GET
方法从请求体检索参数。所以我需要一个带有请求主体的GET
方法。你能参考这个并检查它是否有用吗?删除行request.ContentLength=bytes.Length
并检查它是否工作。@ViVi它没有帮助。然后将方法类型更改为POST
@MykhalikI无法使用POST
,我必须调用GET
方法从请求体检索参数。所以我需要一个带有请求主体的GET
方法。你能参考这个并检查它是否有用吗?