asp.net 模似http請求代碼

來源:互聯網
上載者:User

asp教程.net 模似http請求代碼
/*
一般 模似http請求都用到sock來,設定一些相關請求,讓伺服器覺得是使用者正常瀏覽。
*/
//返回 0 成功註冊 1 帳戶錯誤 2 網路不通 3 驗證碼錯誤 4登陸次數過多
        public int regpost(ref taccountinfo taccountinfo)
        {

            clog.writelog("regpost start");

            string url = "http://***";

            httpwebrequest request = (httpwebrequest)httpwebrequest.create(url);
            request.method = "post";
            request.contenttype = "application/x-www-form-urlencoded";
            request.headers.add("accept-language", "zh-cn");

            request.servicepoint.expect100continue = false;
            request.cookiecontainer = m_cookiecontainer;

            //填充要post的內容
            string strpostdata = "***";

            byte[] bytestopost = encoding.ascii.getbytes(strpostdata);
            request.contentlength = bytestopost.length;
            //request.allowautoredirect = false;

            stream requeststream = null;

            try
            {
                requeststream = request.getrequeststream();
                requeststream.write(bytestopost, 0, bytestopost.length);
            }
            catch
            {
                if (requeststream != null)
                {
                    requeststream.dispose();
                }
                request.abort();

                clog.writelog("regpost end 1");

                return 2;
            }

            requeststream.close();

            int nstatus = 0;

            try
            {
                httpwebresponse response = (httpwebresponse)request.getresponse();

                nstatus = response.statuscode.gethashcode();

                stream responsestream = response.getresponsestream();

                streamreader readstream = new streamreader(responsestream, system.text.encoding.utf8);
                string page = readstream.readtoend();
                response.close();

                clog.writelog("regpost end 2");

                //如果登陸失敗,分析原因
                //分析結果
                if (isyzmwrong(ref  page))
                {
                    return 3;// 驗證碼錯誤     
                }
                else if (isloginsuccess(ref  page))//成功
                {
                    return 0;
                }
                else
                {
                    return 1;// 帳戶密碼錯誤
                }
            }
            catch
            {
                clog.writelog("regpost end 3");
             
                request.abort();
                return 2;
            }
        }

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.