日期:2014-05-18  浏览次数:21134 次

WebClient的Upload GET异常问题
想在代码里向百度知道提交查询,查看百度知道首页源码发现它默认是GET,用网络封包工具分析出来的HTTP请求也是GET,
但以下代码却不能运行,提示异常
  string uriString = "http://zhidao.baidu.com/q";
  // 创建一个新的 WebClient 实例.
  WebClient myWebClient = new WebClient();
  string postData = "word=13338371398&ct=17&pn=0&tn=ikaslist&rn=10&lm=0&fr=search";
  // 注意这种拼字符串的ContentType
  myWebClient.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
  // 转化成二进制数组
  byte[] byteArray = Encoding.ASCII.GetBytes(postData);
  // 上传数据,并获取返回的二进制数据.
  try
  {
  byte[] responseArray = myWebClient.UploadData(uriString, "GET", byteArray);
  }
  catch (Exception ex)
  {
  Trace.WriteLine(ex.InnerException.Message);
  }

输出是:无法发送具有此谓词类型的内容正文

把GET换成POST则正常,但为什么不能用UploadXXX模拟GET,我什么地方错了吗?

------解决方案--------------------
up