C# HttpWebRequest无法发送具有此谓词类型的内容正文错误

作者:谷风 发布时间:2011-04-24 23:41 编辑:http://www.40ps.com

今天在写百度空间互踩小程序的时候出现了一个错误, 代码如下, 运行结果报无法发送具有此谓词类型的内容正文的错误,查了一下原因, 因为WebRequest用的是GET的方式进行提交,而WebRequest.GetRequestStream()是用来在post提交的时候写post的内容的流,GET是不能有附加内容的,所以就报这个错了。

string username = "xxxxxxx";
string cookies = "BAIDUID=33F0B80494D915D631AEA619540E1595:FG=1; BDSTAT=8c0df086a9784652a22cdf2e7629b86668fb1a452ff81a4c450fd9f9d52a00e1; BDSP_REFERFLAG=1301034974050; USERID=0e76ab7374d66752; photopk800d6c656c65736875696d6569d306=yes; photopkaf10657269634a617661a002=yes; photopka50ec1dabed3b0a2cbae790d=yes; GUIDE_a50ec1dabed3b0a2cbae790d=yes; photopk14ee34307073eb14=yes; NO_GUIDE_14ee34307073eb14=yes; Hm_lvt_4d16ad3b9adade3b562e5f64c3a01c5d=1303657643457; _time_stamp_=79; BD_UTK_DVT=1; NO_GUIDE_14ee34307073eb14=yes; BDSP=58d31f29024d78f08ca5fee16ddfe1419e4917cddb5518a7a7ae8af63347768bb9014a90f603738da9773912b31bb051f8198618367adab44aed2e738bd4b31c8701a18b87d6277f9e2f070828381f30e924b899a9014c086e061d950b7b020878f4bde0; BDUSS=mwzM1ZHTnIwc1VZNUVsWndvdzNTOTFnaEk5M29saEJiNFAtaDFxODZYRWNzdHROQVFBQUFBJCQAAAAAAAAAAAoavCEU7usUNDBwcwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAADgWgV3AAAAAOBaBXcAAAAAcF1CAAAAAAAxMC4yMy4yNBwltE0cJbRNR; BDSPINFO=0ec9a9dd72a454d5a9ec9ad5|zting7141|zting7141|6d2060362154765b9ddfe5590e5d0442; BDOPINFO=ac7742156158920f1c958339|40ps|40ps|2ded8cac66696db9445b5bd19e12132b; S_ProfileCheck_14ee34307073eb14=yes; badgePilot_th_14ee34307073eb14=yes; Hm_lpvt_4d16ad3b9adade3b562e5f64c3a01c5d=1303657772136; _opend_windows_=1; IM_old=0|gmw4egks";
CookieContainer cc = Cookies.GetCookieContainer(cookies.Replace("; ", ";"), "hi.baidu.com");

string postData = "";
byte[] byteArray = Encoding.UTF8.GetBytes(postData);    // 转化
        
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(new Uri("http://hi.baidu.com/" + username + "/home"));
request.CookieContainer = cc;

request.Method = "GET";
 

request.ContentType = "application/x-www-form-urlencoded";
request.Referer = "http://hi.baidu.com/index.htm";
request.ContentLength = byteArray.Length;

Stream newStream = request.GetRequestStream();
// 发送数据
newStream.Write(byteArray, 0, byteArray.Length);    //写入参数
newStream.Close();

HttpWebResponse response2 = (HttpWebResponse)request.GetResponse();
StreamReader sr2 = new StreamReader(response2.GetResponseStream(), Encoding.Default);
string text2 = sr2.ReadToEnd();

console.write("ok")

注释掉

//  Stream newStream = request.GetRequestStream();
            // 发送数据
         //   newStream.Write(byteArray, 0, byteArray.Length);    //写入参数
          //  newStream.Close();

这个就可以了。

 

本文虽烂,但转载请注明出处,谢谢!

概念网络 发布程序 开区模版 论坛建设 企业建站 广告图片 其他程序 打包数据 程序定做 仿站服务 网站重构 技术文章
提供企业网站重构、发布站程序、论坛、仿站、美工、网站优化、打包数据出售、程序定做。 客服QQ:
发布站详细功能

本站纯属技术研究,如有侵权请来信通知我们,我们将在第一时间进行删除处理。 gainiansoft@qq.com