for (int i = 0; i < listString.Count; i++)    //循环发请求
                    {                        HttpWebRequest requestbank = (HttpWebRequest)WebRequest.Create("地址");
                        requestbank.ContentType = "application/x-www-form-urlencoded";
                        requestbank.Referer = "地址";
                        requestbank.Headers.Set("Pragma", "no-cache");
                        requestbank.Accept = "*/*";
                        requestbank.Headers.Set("Accept-Language", "zh-CN");
                        requestbank.Headers.Set("Accept-Encoding", "gzip, deflate,sdch");
                        string temp3 = "u=" + mc3[0].Value + ";" + "ua=" + mc4[0].Value + ";" + "passport=" + mc5[0].Value + ";";
                        requestbank.Headers.Set("cookie", temp3);
                        requestbank.Method = "POST";                        Encoding encoding233 = Encoding.GetEncoding("utf-8");                        byte[] bytesToPost2 = encoding233.GetBytes("action=virement&pwuser=" + listString[i].ToString() + "&to_money=1888888888&content_plus=%E9%80%9A%E8%BF%87%E9%93%B6%E8%A1%8C%E7%BB%99%E4%BD%A0%E8%BD%AC%E8%B4%A61888888888%E5%8D%A1%E8%B7%AF%E9%87%8C%0A%E9%99%84%E8%A8%80%EF%BC%9A);
                        requestbank.ContentLength = bytesToPost2.Length;
                        System.IO.Stream requestStream2 = requestbank.GetRequestStream();
                        requestStream2.Write(bytesToPost2, 0, bytesToPost2.Length);
                        requestStream2.Close();
                        bytesToPost2 = encoding233.GetBytes("");
                        Thread.Sleep(1000);   //延时
                    }这样循环发包就一切正常,一但我把byteToPost2中的188888888换成Money[0].ToString(),即把常量变成变量。就会出现很奇怪的事情。我把第一个18888888换成Money[0].ToString(),发送成功第一个和第三个(总共有五个)。我把两个1888888都改成Money[0].ToString(),发送成功第二个和第三个囧不是应该要不然整个循环没一个成功,要不都成功,怎么会有的成功有的不成功呢?我用弹窗测试下代码,到第二或第三个的时候,就会卡在那里

解决方案 »

  1.   

    我的POST正文内容发送方式是不是有错误?为什么会有的成功,有的不成功?
      

  2.   

    +"psaaport="+HttpUtility.UrlEncode( listString[i].ToString() )
      

  3.   

    个人感觉是这里                        Encoding encoding233 = Encoding.GetEncoding("utf-8");                        byte[] bytesToPost2 = encoding233.GetBytes("action=virement&pwuser=" + listString[i].ToString() + "&to_money=1888888888&content_pluE8%BD%AC%E8%B4%A61888888888%E5%8D%A1%EBC%9A);
                            requestbank.ContentLength = bytesToPost2.Length;
                            System.IO.Stream requestStream2 = requestbank.GetRequestStream();
                            requestStream2.Write(bytesToPost2, 0, bytesToPost2.Length);
                            requestStream2.Close();
                            bytesToPost2 = encoding233.GetBytes("");写入效率太低了,cpu一直在等待,有什么办法可以解决么?