Click here to Skip to main content
Rate this: bad
good
Please Sign up or sign in to vote.
See more: C# HTTP
Hi All,
 
I have to post some data from asp.net to Webservice using HTTP post.
 
While I am trying to POST data to a Restful service and getting this error. Any help greatly appreciated.
Length = 'dataStream.Length' threw an exception of type 'System.NotSupportedException'
 
Position = 'dataStream.Position' threw an exception of type 'System.NotSupportedException'
Below is my code.
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;
    }
Thanks in advance.
 
Priyanka
Posted 20-Dec-11 23:28pm
Edited 20-Dec-11 23:48pm
RaisKazi32.9K
v2

1 solution

Rate this: bad
good
Please Sign up or sign in to vote.

Solution 1

Hi,
It would help if you could identify on what line you got the error but looking at the code it seem that you are trying to handle a async call in a synchrounous way.
 
You should call the EndGetResponce from the callback and as such make sure that the data buffer can be accessed (safely) from both methods.
 
Hope this helps.
 
Cheers, AT
  Permalink  

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)

  Print Answers RSS
0 Sergey Alexandrovich Kryukov 545
1 CPallini 490
2 George Jonsson 291
3 OriginalGriff 260
4 Suvabrata Roy 219
0 OriginalGriff 4,873
1 CPallini 3,900
2 Sergey Alexandrovich Kryukov 3,474
3 George Jonsson 2,646
4 Gihan Liyanage 2,236


Advertise | Privacy | Mobile
Web04 | 2.8.140905.1 | Last Updated 11 Sep 2012
Copyright © CodeProject, 1999-2014
All Rights Reserved. Terms of Service
Layout: fixed | fluid

CodeProject, 503-250 Ferrand Drive Toronto Ontario, M3C 3G8 Canada +1 416-849-8900 x 100