priyanka_jns Ответов: 1

поток данных.Длина" выбросила исключение типа " система.исключение NotSupportedException


Всем Привет,

Я должен опубликовать некоторые данные из asp.net для веб-сервиса используется HTTP post.

В то время как я пытаюсь отправить данные в Службу Restful и получаю эту ошибку. Любая помощь очень ценится.
Length = 'dataStream.Length' threw an exception of type 'System.NotSupportedException'

Position = 'dataStream.Position' threw an exception of type 'System.NotSupportedException'

Ниже приведен мой код.
protected string GetResponseWithPost(string StrURL, string strPostData)
    {
        string strReturn = "";
        HttpWebRequest objRequest = null;
        ASCIIEncoding objEncoding = new ASCIIEncoding();
        Stream reqStream = null;
        HttpWebResponse objResponse = null;
        StreamReader objReader = null;
        try
        {
            objRequest = (HttpWebRequest)WebRequest.Create(StrURL);

            objRequest.Method = "POST";
            byte[] objBytes = objEncoding.GetBytes(strPostData);
            objRequest.ContentLength = objBytes.Length;
            objRequest.ContentType = "application/x-www-form-urlencoded";
            reqStream = objRequest.GetRequestStream();
            reqStream.Write(objBytes, 0, objBytes.Length);

            IAsyncResult ar = objRequest.BeginGetResponse(new AsyncCallback(GetScrapingResponse), objRequest);
            //// Wait for request to complete
            ar.AsyncWaitHandle.WaitOne(1000 * 60 * 3, true);
            if (objRequest.HaveResponse == false)
            {
                throw new Exception("No Response!!!");
            }
            objResponse = (HttpWebResponse)objRequest.EndGetResponse(ar);
            objReader = new StreamReader(objResponse.GetResponseStream());
            strReturn = objReader.ReadToEnd();

        }
        catch (Exception exp)
        {
            throw exp;
        }
        finally
        {
            objRequest = null;
            objEncoding = null;
            reqStream = null;
            if (objResponse != null)
                objResponse.Close();
            objResponse = null;
            objReader = null;
        }
        return strReturn;
    }

Заранее спасибо.

Приянка

1 Ответов

Рейтинг:
0

Addy Tas

Привет,
Было бы полезно, если бы вы могли определить, в какой строке вы получили ошибку, но, глядя на код, кажется, что вы пытаетесь обработать асинхронный вызов синхронным способом.

Вы должны вызвать EndGetResponce из обратного вызова и таким образом убедиться, что буфер данных может быть доступен (безопасно) из обоих методов.

Надеюсь, это поможет.

Ура, АТ