WEBREQUEST AND WEBRESPONSE PROBLEM

Discussion in 'ASP .Net' started by Savas Ates, Jan 24, 2006.

  1. Savas Ates

    Savas Ates Guest

    I have a vb.net web application. I want to post some variables to another
    web page and take some values back and process them.


    This is codes in my target url. I should post "langpair" cariable to my
    target url and it will respond with a value depend on a value which i send.
    <SELECT name=langpair><OPTION
    value=en|de>English to German</OPTION><OPTION
    value=en|es>English to Spanish</OPTION>
    </select>



    I must use post method. I must give a value for select object and post it to
    my target url ? I heard about BeginGetRequestStream but i dont know how to
    do it ?


    Dim objURI As Uri = New Uri("http://www.isbuluyorum.com/translate")
    Dim objWebRequest As WebRequest = WebRequest.Create(objURI)
    objWebRequest.ContentType = "text/html; charset=utf-8"
    objWebRequest.Method = "POST"
    'BEFORE to get response i should post variables to other web page ?


    Dim objWebResponse As WebResponse = objWebRequest.GetResponse()
    Dim objStream As Stream = objWebResponse.GetResponseStream()
    Dim objStreamReader As StreamReader = New StreamReader(objStream)
    Dim strHTML As String = objStreamReader.ReadToEnd

    Response.Write(Server.HtmlEncode(strHTML))
     
    Savas Ates, Jan 24, 2006
    #1
    1. Advertisements

  2. The body of an HTTP POST of form data is a set of URL-encoded name=value
    pairs. For example, the body of the message you would want to send in this
    case would be something like:

    langpair=en%7Cde

    Note the "%7C" used for the "|" character. For the most part, you can use
    HttpUtility.UrlEncode to do the encoding of the string. However, many
    servers don't recognize "%20" as a space, so you would want to use "+" for
    spaces instead.

    You just write the string to the stream you receive from the
    GetResponseStream method.

    The following example is in C#. I trust you can do the translation:

    // ...code to initialize WebRequest and WebResponse...

    System.Text.ASCIIEncoding encoding = new System.Text.ASCIIEncoding();
    System.IO.Stream requestStream = null;
    byte[] body;

    objWebRequest.Method = "POST";
    objWebRequest.ContentType = "application/x-www-form-urlencoded";
    objWebbody = encoding.GetBytes("langpair=en%7Cde");
    objWebRequest.ContentLength = body.Length;
    requestStream = Request.GetRequestStream();
    requestStream.Write(body, 0, body.Length);
    objWebResponse = (HttpWebResponse)Request.GetResponse();

    --
    HTH,

    Kevin Spencer
    Microsoft MVP
    ..Net Developer
    Who is Mighty Abbott?
    A twin turret scalawag.
     
    Kevin Spencer, Jan 24, 2006
    #2
    1. Advertisements

  3. Savas Ates

    Savas Ates Guest

    I wrote the code which is below. It seems ok but i have more variables to
    send to my target web page ?
    <textarea name=text1> </textarea>
    <textarea name=text2> </textarea>

    how can i add all variables to send to my target page ?








    Dim encoding As New System.Text.ASCIIEncoding

    Dim requestStream As System.IO.Stream



    Dim objURI As Uri = New Uri(http://www.isbuluyorum.com)

    Dim objWebRequest As WebRequest = WebRequest.Create(objURI)

    objWebRequest.ContentType = "application/x-www-form-urlencoded"

    objWebRequest.Method = "POST"

    Dim body() As Byte

    body = encoding.GetBytes("langpair=en%7Cde")

    objWebRequest.ContentLength = body.Length

    requestStream = objWebRequest.GetRequestStream

    requestStream.Write(body, 0, body.Length)



    Dim objWebResponse As WebResponse = objWebRequest.GetResponse()

    Dim objStream As Stream = objWebResponse.GetResponseStream()

    Dim objStreamReader As StreamReader = New StreamReader(objStream)

    Dim strHTML As String = objStreamReader.ReadToEnd

    Response.Write(strHTML)











     
    Savas Ates, Jan 24, 2006
    #3
  4. Ah yes. It works just like a QueryString. Each name=value pair is separated
    by the "&" character, as in:

    text1=blah+blah+blah&text2=blah+blah+blah

    --
    HTH,

    Kevin Spencer
    Microsoft MVP
    ..Net Developer
    Who is Mighty Abbott?
    A twin turret scalawag.

     
    Kevin Spencer, Jan 24, 2006
    #4
  5. Savas Ates

    Savas Ates Guest

    thanks ;)
     
    Savas Ates, Jan 24, 2006
    #5
    1. Advertisements

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments (here). After that, you can post your question and our members will help you out.