当我使用HttpWebRequest时,asp.net InvalidOperationException

时间:2015-03-12 15:55:56

标签: c# asp.net web-services keep-alive

这是我的代码:

    public Form1()
    {
        InitializeComponent();
    }

    // create new http request
    public void createRequest(String url, int idleTime){
        webRequest = (HttpWebRequest)WebRequest.Create(url);
        webRequest.Method = "POST";
        webRequest.KeepAlive = true;
        webRequest.UnsafeAuthenticatedConnectionSharing = true;
        ServicePointManager.MaxServicePointIdleTime = idleTime;
    }

    private void Form1_Load(object sender, EventArgs e)
    {
        createRequest("http://freemusic.somee.com/Service.asmx/add", 100000);
    }

    private void txtOK_Click(object sender, EventArgs e)
    {
        if (webRequest == null)
        {
            sumTxt.Text = "HTTP cannot keep alive!";
            createRequest("http://freemusic.somee.com/Service.asmx/add", 100000);
        }
        // client send a request
        webRequest.ContentType = "application/x-www-form-urlencoded";
        String strParameter = "a=" + aTxt.Text + "&b=" + bTxt.Text;
        byte[] byteArray = Encoding.UTF8.GetBytes(strParameter);
        webRequest.ContentLength = byteArray.Length;
        Stream dataStreamWriter = webRequest.GetRequestStream();
        dataStreamWriter.Write(byteArray, 0, byteArray.Length);
        //dataStreamWriter.Close();

        // receive response from server
        try
        {
            webResponse = (HttpWebResponse)webRequest.GetResponse();
            Stream dataStreamReader = webResponse.GetResponseStream();
            StreamReader sr = new StreamReader(dataStreamReader, Encoding.UTF8);
            String strResponse = sr.ReadToEnd();
            sumTxt.Text = strResponse;
            //webResponse.Close();
            //dataStreamReader.Close();
            //sr.Close();
        }
        catch (WebException ex)
        {
            String response = ex.Message;
            sumTxt.Text = response;
        }
    }

我想创建一个http keep-alive连接。 '添加' Web服务中的方法将接收2个输入参数a和&的总和。湾它首先运行正好,但后来程序在行中抛出了InvalidOperationException:webRequest.ContentLength = byteArray.Length; 。在这种情况下我该怎么办?

0 个答案:

没有答案
相关问题