今天用到之前封装的web request 请求,但抛错:无法发送具有此谓词类型的内容正文。
经过检查,发现之前的方法里面有GetRequestStream(), GET请求并不支持,于是把GetRequestStream()和相应的代码注释掉就OK了
下面提供完整的c# web request 请求方法供参考
/// <summary>
/// 请求url,并获取返回值
/// </summary>
/// <param name="postUrl">url地址</param>
/// <param name="_Encode">Encoding 编码</param>
/// <param name="_Result">返回结果</param>
/// <param name="_ErrMsg">错误时的错误消息</param>
/// <returns></returns>
public bool WebRequestData(string postUrl, Encoding _Encode, ref string _Result, ref string _ErrMsg)
{
bool bln = false;
try
{
HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(postUrl));
webReq.Method = "GET";
webReq.ContentType = "application/x-www-form-urlencoded";
HttpWebResponse response = (HttpWebResponse)webReq.GetResponse();
StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.UTF8);
_Result = sr.ReadToEnd();
bln = true;
sr.Close();
response.Close();
}
catch (Exception ex)
{
_ErrMsg = ex.Message;
}
return bln;
}