HttpWebRequest請求時無法發送具有此謂詞類型的內容正文。


HttpWebRequest request = (HttpWebRequest)WebRequest.Create(postUrl); //--需要封裝的參數 
            request.CookieContainer = new CookieContainer();
            CookieContainer cookie = request.CookieContainer;//如果用不到Cookie,刪去即可  
            //以下是發送的http頭 
            request.Referer = "";
            request.Accept = "Accept:text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8";
            request.Headers["Accept-Language"] = "zh-CN,zh;q=0.";
            request.Headers["Accept-Charset"] = "GBK,utf-8;q=0.7,*;q=0.3";
            request.UserAgent = "User-Agent:Mozilla/5.0 (Windows NT 5.1) AppleWebKit/535.1 (KHTML, like Gecko) Chrome/14.0.835.202 Safari/535.1";
            request.KeepAlive = true;
            //上面的http頭看情況而定,但是下面倆必須加  
            request.ContentType = "application/x-www-form-urlencoded";
            Encoding encoding = Encoding.UTF8;//根據網站的編碼自定義
            request.Method ="get";  //--需要將get改為post才可行
            string postDataStr;
            Stream requestStream = request.GetRequestStream();
            if (postDatas != "")
            {
                postDataStr=postDatas;//--需要封裝,形式如“arg=arg1&arg2=arg2” 
                byte[] postData = encoding.GetBytes(postDataStr);//postDataStr即為發送的數據,
                request.ContentLength = postData.Length;
                requestStream.Write(postData, 0, postData.Length);
            }

            HttpWebResponse response = (HttpWebResponse)request.GetResponse();
            Stream responseStream = response.GetResponseStream();


            StreamReader streamReader = new StreamReader(responseStream, encoding);
            string retString = streamReader.ReadToEnd();

            streamReader.Close();
            responseStream.Close();
            return retString;

  如果是以流的方式提交表單數據的時候不能使用get方法,必須用post方法,

 

改為

request.Method ="post";  就可以了。  做一個記號

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM