By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
443,302 Members | 1,812 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 443,302 IT Pros & Developers. It's quick & easy.

Getting results from the server

P: n/a
Hello,

I have a simple client-side form that is checking the domain availability on
the domain registrar's server:

<FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl" method="post">
<input type="hidden" name="thisPage" value="pispCheckDomain">
<input type="hidden" name="username" value="test">
<input type="hidden" name="password" value="test">
domain_name: <input type="text" name="domain_name"><br>
<input type="submit" runat="server" id="Submit1" value="Submit Query"
name="Submit1">
</FORM>

It sends parameter thisPage with the value pispCheckDomain that tells the
system to check availability of a domain domain_name.

The server responds like this: Success: <domain name> is Available or
Success: <domain name> is Unavailable. I can see it on the page
https://www.webnames.ru/scripts/RegTimeSRS.pl

How can I get these results to my page using ASP.NET? There is no
information that the server returns any parameters, so I need to construct
the request myself. I usually use Request.QueryString("param") or
request.Form("param"), but in this case there is no "param" specified.
Should be pretty easy task for a web programmer, but I've never done this
before. This should be similar to querying Whois results.

I would appreciate your advice.

Thank you,

--
Peter Afonin
Nov 19 '05 #1
Share this Question
Share on Google+
10 Replies


P: n/a
Hi Peter,
Have a look at the System.Net.HttpWebRequest object and use it to create a
form post, you can then read the response and take any action you require

HTH jd

"Peter Afonin" wrote:
Hello,

I have a simple client-side form that is checking the domain availability on
the domain registrar's server:

<FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl" method="post">
<input type="hidden" name="thisPage" value="pispCheckDomain">
<input type="hidden" name="username" value="test">
<input type="hidden" name="password" value="test">
domain_name: <input type="text" name="domain_name"><br>
<input type="submit" runat="server" id="Submit1" value="Submit Query"
name="Submit1">
</FORM>

It sends parameter thisPage with the value pispCheckDomain that tells the
system to check availability of a domain domain_name.

The server responds like this: Success: <domain name> is Available or
Success: <domain name> is Unavailable. I can see it on the page
https://www.webnames.ru/scripts/RegTimeSRS.pl

How can I get these results to my page using ASP.NET? There is no
information that the server returns any parameters, so I need to construct
the request myself. I usually use Request.QueryString("param") or
request.Form("param"), but in this case there is no "param" specified.
Should be pretty easy task for a web programmer, but I've never done this
before. This should be similar to querying Whois results.

I would appreciate your advice.

Thank you,

--
Peter Afonin

Nov 19 '05 #2

P: n/a
Hi,

Thank you.

No, but I'll look at it. I've set up several systems like this, and always I
was submitting my URL as a parameter so the system would send me the
response to this address. In this case, however, it's not required, and this
is what I cannot understand.

The developer said that they are using module LWP in Perl, but he doesn't
know what to use in ASP or ASP.NET.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:E3**********************************@microsof t.com...
Hi Peter,
Have a look at the System.Net.HttpWebRequest object and use it to create a
form post, you can then read the response and take any action you require

HTH jd

"Peter Afonin" wrote:
Hello,

I have a simple client-side form that is checking the domain availability
on
the domain registrar's server:

<FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
method="post">
<input type="hidden" name="thisPage" value="pispCheckDomain">
<input type="hidden" name="username" value="test">
<input type="hidden" name="password" value="test">
domain_name: <input type="text" name="domain_name"><br>
<input type="submit" runat="server" id="Submit1" value="Submit Query"
name="Submit1">
</FORM>

It sends parameter thisPage with the value pispCheckDomain that tells the
system to check availability of a domain domain_name.

The server responds like this: Success: <domain name> is Available or
Success: <domain name> is Unavailable. I can see it on the page
https://www.webnames.ru/scripts/RegTimeSRS.pl

How can I get these results to my page using ASP.NET? There is no
information that the server returns any parameters, so I need to
construct
the request myself. I usually use Request.QueryString("param") or
request.Form("param"), but in this case there is no "param" specified.
Should be pretty easy task for a web programmer, but I've never done this
before. This should be similar to querying Whois results.

I would appreciate your advice.

Thank you,

--
Peter Afonin

Nov 19 '05 #3

P: n/a
Hi Peter,

If I understand correctly the result you are looking for is the 'page'
output, though probably in plain text (the link you posted gives me an
error).

If you use the HttpWebRequest to post your form information (e.g the domain
you're looking for etc) to the server you get an HttpWebResponse object back.

This (httpWebResponse) object
contains among otherthings, a method called GetResponseStream which is a
System.IO.Stream containing the page output.

Read this stream using a Syatem.IO.StreamReader object to get the page body
- in this case the string "success: suchadomain.com is availiable".

You then need to parse the string probably by splitting it on space chars
and analysing the parts of the string array

HTH jd

"Peter Afonin" wrote:
Hi,

Thank you.

No, but I'll look at it. I've set up several systems like this, and always I
was submitting my URL as a parameter so the system would send me the
response to this address. In this case, however, it's not required, and this
is what I cannot understand.

The developer said that they are using module LWP in Perl, but he doesn't
know what to use in ASP or ASP.NET.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:E3**********************************@microsof t.com...
Hi Peter,
Have a look at the System.Net.HttpWebRequest object and use it to create a
form post, you can then read the response and take any action you require

HTH jd

"Peter Afonin" wrote:
Hello,

I have a simple client-side form that is checking the domain availability
on
the domain registrar's server:

<FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
method="post">
<input type="hidden" name="thisPage" value="pispCheckDomain">
<input type="hidden" name="username" value="test">
<input type="hidden" name="password" value="test">
domain_name: <input type="text" name="domain_name"><br>
<input type="submit" runat="server" id="Submit1" value="Submit Query"
name="Submit1">
</FORM>

It sends parameter thisPage with the value pispCheckDomain that tells the
system to check availability of a domain domain_name.

The server responds like this: Success: <domain name> is Available or
Success: <domain name> is Unavailable. I can see it on the page
https://www.webnames.ru/scripts/RegTimeSRS.pl

How can I get these results to my page using ASP.NET? There is no
information that the server returns any parameters, so I need to
construct
the request myself. I usually use Request.QueryString("param") or
request.Form("param"), but in this case there is no "param" specified.
Should be pretty easy task for a web programmer, but I've never done this
before. This should be similar to querying Whois results.

I would appreciate your advice.

Thank you,

--
Peter Afonin


Nov 19 '05 #4

P: n/a
Hi,

Thank you, I've read about this object, I guess this is exactly what I need.

I haven't tried it yet, but I will today. One thing I'm not sure about yet.

It works this way. You submit the form to
https://www.webnames.ru/scripts/RegTimeSRS.pl, it returns a page saying
something like this: Success. Domain <domain_name> is unavaliable. I have to
read this page.

This object httpWebResponse does exactly this. But the system returns the
response on the same dynamic page,
https://www.webnames.ru/scripts/RegTimeSRS.pl, so I'm not sure how it will
read it. I guess I have to try.

Thanks again,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:F1**********************************@microsof t.com...
Hi Peter,

If I understand correctly the result you are looking for is the 'page'
output, though probably in plain text (the link you posted gives me an
error).

If you use the HttpWebRequest to post your form information (e.g the
domain
you're looking for etc) to the server you get an HttpWebResponse object
back.

This (httpWebResponse) object
contains among otherthings, a method called GetResponseStream which is a
System.IO.Stream containing the page output.

Read this stream using a Syatem.IO.StreamReader object to get the page
body
- in this case the string "success: suchadomain.com is availiable".

You then need to parse the string probably by splitting it on space chars
and analysing the parts of the string array

HTH jd

"Peter Afonin" wrote:
Hi,

Thank you.

No, but I'll look at it. I've set up several systems like this, and
always I
was submitting my URL as a parameter so the system would send me the
response to this address. In this case, however, it's not required, and
this
is what I cannot understand.

The developer said that they are using module LWP in Perl, but he doesn't
know what to use in ASP or ASP.NET.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in
message
news:E3**********************************@microsof t.com...
> Hi Peter,
> Have a look at the System.Net.HttpWebRequest object and use it to
> create a
> form post, you can then read the response and take any action you
> require
>
> HTH jd
>
> "Peter Afonin" wrote:
>
>> Hello,
>>
>> I have a simple client-side form that is checking the domain
>> availability
>> on
>> the domain registrar's server:
>>
>> <FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
>> method="post">
>> <input type="hidden" name="thisPage" value="pispCheckDomain">
>> <input type="hidden" name="username" value="test">
>> <input type="hidden" name="password" value="test">
>> domain_name: <input type="text" name="domain_name"><br>
>> <input type="submit" runat="server" id="Submit1" value="Submit
>> Query"
>> name="Submit1">
>> </FORM>
>>
>> It sends parameter thisPage with the value pispCheckDomain that tells
>> the
>> system to check availability of a domain domain_name.
>>
>> The server responds like this: Success: <domain name> is Available or
>> Success: <domain name> is Unavailable. I can see it on the page
>> https://www.webnames.ru/scripts/RegTimeSRS.pl
>>
>> How can I get these results to my page using ASP.NET? There is no
>> information that the server returns any parameters, so I need to
>> construct
>> the request myself. I usually use Request.QueryString("param") or
>> request.Form("param"), but in this case there is no "param" specified.
>> Should be pretty easy task for a web programmer, but I've never done
>> this
>> before. This should be similar to querying Whois results.
>>
>> I would appreciate your advice.
>>
>> Thank you,
>>
>> --
>> Peter Afonin
>>
>>
>>


Nov 19 '05 #5

P: n/a
Hi,

I've found all code, but there is one thing I'm struggling with now:

When I post my form results, I'm getting redirected to the page
https://www.webnames.ru/scripts/RegTimeSRS.pl. How do I get back to my page
to read the results?

Thank you,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:F1**********************************@microsof t.com...
Hi Peter,

If I understand correctly the result you are looking for is the 'page'
output, though probably in plain text (the link you posted gives me an
error).

If you use the HttpWebRequest to post your form information (e.g the
domain
you're looking for etc) to the server you get an HttpWebResponse object
back.

This (httpWebResponse) object
contains among otherthings, a method called GetResponseStream which is a
System.IO.Stream containing the page output.

Read this stream using a Syatem.IO.StreamReader object to get the page
body
- in this case the string "success: suchadomain.com is availiable".

You then need to parse the string probably by splitting it on space chars
and analysing the parts of the string array

HTH jd

"Peter Afonin" wrote:
Hi,

Thank you.

No, but I'll look at it. I've set up several systems like this, and
always I
was submitting my URL as a parameter so the system would send me the
response to this address. In this case, however, it's not required, and
this
is what I cannot understand.

The developer said that they are using module LWP in Perl, but he doesn't
know what to use in ASP or ASP.NET.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in
message
news:E3**********************************@microsof t.com...
> Hi Peter,
> Have a look at the System.Net.HttpWebRequest object and use it to
> create a
> form post, you can then read the response and take any action you
> require
>
> HTH jd
>
> "Peter Afonin" wrote:
>
>> Hello,
>>
>> I have a simple client-side form that is checking the domain
>> availability
>> on
>> the domain registrar's server:
>>
>> <FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
>> method="post">
>> <input type="hidden" name="thisPage" value="pispCheckDomain">
>> <input type="hidden" name="username" value="test">
>> <input type="hidden" name="password" value="test">
>> domain_name: <input type="text" name="domain_name"><br>
>> <input type="submit" runat="server" id="Submit1" value="Submit
>> Query"
>> name="Submit1">
>> </FORM>
>>
>> It sends parameter thisPage with the value pispCheckDomain that tells
>> the
>> system to check availability of a domain domain_name.
>>
>> The server responds like this: Success: <domain name> is Available or
>> Success: <domain name> is Unavailable. I can see it on the page
>> https://www.webnames.ru/scripts/RegTimeSRS.pl
>>
>> How can I get these results to my page using ASP.NET? There is no
>> information that the server returns any parameters, so I need to
>> construct
>> the request myself. I usually use Request.QueryString("param") or
>> request.Form("param"), but in this case there is no "param" specified.
>> Should be pretty easy task for a web programmer, but I've never done
>> this
>> before. This should be similar to querying Whois results.
>>
>> I would appreciate your advice.
>>
>> Thank you,
>>
>> --
>> Peter Afonin
>>
>>
>>


Nov 19 '05 #6

P: n/a
I guess this is a better question: how should I post the form data using
HttpWebRequest object instead of the way I'm doing it now?

I've found the code sample:

Dim result As String = ""
Dim strPost As String = "x=1&y=2&z=YouPostedOk"
Dim myWriter As StreamWriter

Dim objRequest As HttpWebRequest = WebRequest.Create(url)
objRequest.Method = "POST"
objRequest.ContentLength = strPost.Length
objRequest.ContentType = "application/x-www-form-urlencoded"

Is this a way I should post it - as a string, where x, y and z are the field
names? Or am I missing something?

Thank you,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:F1**********************************@microsof t.com...
Hi Peter,

If I understand correctly the result you are looking for is the 'page'
output, though probably in plain text (the link you posted gives me an
error).

If you use the HttpWebRequest to post your form information (e.g the domain you're looking for etc) to the server you get an HttpWebResponse object back.
This (httpWebResponse) object
contains among otherthings, a method called GetResponseStream which is a
System.IO.Stream containing the page output.

Read this stream using a Syatem.IO.StreamReader object to get the page body - in this case the string "success: suchadomain.com is availiable".

You then need to parse the string probably by splitting it on space chars
and analysing the parts of the string array

HTH jd

"Peter Afonin" wrote:
Hi,

Thank you.

No, but I'll look at it. I've set up several systems like this, and always I was submitting my URL as a parameter so the system would send me the
response to this address. In this case, however, it's not required, and this is what I cannot understand.

The developer said that they are using module LWP in Perl, but he doesn't know what to use in ASP or ASP.NET.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message news:E3**********************************@microsof t.com...
Hi Peter,
Have a look at the System.Net.HttpWebRequest object and use it to create a form post, you can then read the response and take any action you require
HTH jd

"Peter Afonin" wrote:

> Hello,
>
> I have a simple client-side form that is checking the domain availability> on
> the domain registrar's server:
>
> <FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
> method="post">
> <input type="hidden" name="thisPage" value="pispCheckDomain">
> <input type="hidden" name="username" value="test">
> <input type="hidden" name="password" value="test">
> domain_name: <input type="text" name="domain_name"><br>
> <input type="submit" runat="server" id="Submit1" value="Submit Query"> name="Submit1">
> </FORM>
>
> It sends parameter thisPage with the value pispCheckDomain that tells the> system to check availability of a domain domain_name.
>
> The server responds like this: Success: <domain name> is Available or
> Success: <domain name> is Unavailable. I can see it on the page
> https://www.webnames.ru/scripts/RegTimeSRS.pl
>
> How can I get these results to my page using ASP.NET? There is no
> information that the server returns any parameters, so I need to
> construct
> the request myself. I usually use Request.QueryString("param") or
> request.Form("param"), but in this case there is no "param" specified.> Should be pretty easy task for a web programmer, but I've never done this> before. This should be similar to querying Whois results.
>
> I would appreciate your advice.
>
> Thank you,
>
> --
> Peter Afonin
>
>
>


Nov 19 '05 #7

P: n/a
Hi Again Peter below is a function to post to a url and receive the response
(note the class I copied it from has a property called TimeOutMs which does
what it says really, waits TimeOutMs Milliseconds before aborting). As far as
I can see your form string ("x=1&y=2") seems fine. Often you would use a
NameValue (E.g Request object) Collection to collect your data before
building your string. From memory the string mustn't have a leading ampersand
(&). HTH jd

Private Function DoPostToServer(ByVal formContents As String, ByVal
postUrl As String) As String
Debug.WriteLine("DoPostToServer")
Dim sResponseString As String = ""

Dim myFormBytes() As Byte =
Text.ASCIIEncoding.ASCII.GetBytes(formContents)

Dim myRequest As Net.HttpWebRequest = Net.WebRequest.Create(postUrl)
myRequest.ContentType = "application/x-www-form-urlencoded"
myRequest.Method = "POST"
myRequest.Timeout = Me.TimeOutMs
myRequest.ContentLength = myFormBytes.Length

Dim failure As Boolean = False
Dim outputStream As IO.Stream

Try
outputStream = myRequest.GetRequestStream()
outputStream.Write(myFormBytes, 0, myFormBytes.Length)
Catch ex As Exception
failure = True
Debug.WriteLine(ex.StackTrace + " " + ex.Message)
Finally
If Not outputStream Is Nothing Then
outputStream.Close()
End If
End Try

Dim myResponse As Net.HttpWebResponse
Dim myStreamReader As IO.StreamReader
Dim inputStream As IO.Stream

If Not failure Then
Dim responseSring As String
Try
myResponse = myRequest.GetResponse
inputStream = myResponse.GetResponseStream
myStreamReader = New IO.StreamReader(inputStream)

sResponseString = myStreamReader.ReadToEnd

Catch ex As Exception
failure = True
Debug.WriteLine(ex.StackTrace + " " + ex.Message)
Finally
If Not myStreamReader Is Nothing Then

myStreamReader.Close()
End If
If Not inputStream Is Nothing Then
inputStream.Close()
End If
If Not myResponse Is Nothing Then
myResponse.Close()
End If
End Try
End If
Debug.WriteLine(sResponseString)
Return sResponseString
End Function

"Peter Afonin" wrote:
I guess this is a better question: how should I post the form data using
HttpWebRequest object instead of the way I'm doing it now?

I've found the code sample:

Dim result As String = ""
Dim strPost As String = "x=1&y=2&z=YouPostedOk"
Dim myWriter As StreamWriter

Dim objRequest As HttpWebRequest = WebRequest.Create(url)
objRequest.Method = "POST"
objRequest.ContentLength = strPost.Length
objRequest.ContentType = "application/x-www-form-urlencoded"

Is this a way I should post it - as a string, where x, y and z are the field
names? Or am I missing something?

Thank you,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:F1**********************************@microsof t.com...
Hi Peter,

If I understand correctly the result you are looking for is the 'page'
output, though probably in plain text (the link you posted gives me an
error).

If you use the HttpWebRequest to post your form information (e.g the

domain
you're looking for etc) to the server you get an HttpWebResponse object

back.

This (httpWebResponse) object
contains among otherthings, a method called GetResponseStream which is a
System.IO.Stream containing the page output.

Read this stream using a Syatem.IO.StreamReader object to get the page

body
- in this case the string "success: suchadomain.com is availiable".

You then need to parse the string probably by splitting it on space chars
and analysing the parts of the string array

HTH jd

"Peter Afonin" wrote:
Hi,

Thank you.

No, but I'll look at it. I've set up several systems like this, and always I was submitting my URL as a parameter so the system would send me the
response to this address. In this case, however, it's not required, and this is what I cannot understand.

The developer said that they are using module LWP in Perl, but he doesn't know what to use in ASP or ASP.NET.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message news:E3**********************************@microsof t.com...
> Hi Peter,
> Have a look at the System.Net.HttpWebRequest object and use it to create a > form post, you can then read the response and take any action you require >
> HTH jd
>
> "Peter Afonin" wrote:
>
>> Hello,
>>
>> I have a simple client-side form that is checking the domain availability >> on
>> the domain registrar's server:
>>
>> <FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
>> method="post">
>> <input type="hidden" name="thisPage" value="pispCheckDomain">
>> <input type="hidden" name="username" value="test">
>> <input type="hidden" name="password" value="test">
>> domain_name: <input type="text" name="domain_name"><br>
>> <input type="submit" runat="server" id="Submit1" value="Submit Query" >> name="Submit1">
>> </FORM>
>>
>> It sends parameter thisPage with the value pispCheckDomain that tells the >> system to check availability of a domain domain_name.
>>
>> The server responds like this: Success: <domain name> is Available or
>> Success: <domain name> is Unavailable. I can see it on the page
>> https://www.webnames.ru/scripts/RegTimeSRS.pl
>>
>> How can I get these results to my page using ASP.NET? There is no
>> information that the server returns any parameters, so I need to
>> construct
>> the request myself. I usually use Request.QueryString("param") or
>> request.Form("param"), but in this case there is no "param" specified. >> Should be pretty easy task for a web programmer, but I've never done this >> before. This should be similar to querying Whois results.
>>
>> I would appreciate your advice.
>>
>> Thank you,
>>
>> --
>> Peter Afonin
>>
>>
>>


Nov 19 '05 #8

P: n/a
You could try

myWebRequestObject.AllowAutoRedirect = False

I'm wondering if the script you post to requires authentication (i.e login)
before it will let you post to it?

HTH jd
"Peter Afonin" wrote:
Hi,

I've found all code, but there is one thing I'm struggling with now:

When I post my form results, I'm getting redirected to the page
https://www.webnames.ru/scripts/RegTimeSRS.pl. How do I get back to my page
to read the results?

Thank you,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:F1**********************************@microsof t.com...
Hi Peter,

If I understand correctly the result you are looking for is the 'page'
output, though probably in plain text (the link you posted gives me an
error).

If you use the HttpWebRequest to post your form information (e.g the
domain
you're looking for etc) to the server you get an HttpWebResponse object
back.

This (httpWebResponse) object
contains among otherthings, a method called GetResponseStream which is a
System.IO.Stream containing the page output.

Read this stream using a Syatem.IO.StreamReader object to get the page
body
- in this case the string "success: suchadomain.com is availiable".

You then need to parse the string probably by splitting it on space chars
and analysing the parts of the string array

HTH jd

"Peter Afonin" wrote:
Hi,

Thank you.

No, but I'll look at it. I've set up several systems like this, and
always I
was submitting my URL as a parameter so the system would send me the
response to this address. In this case, however, it's not required, and
this
is what I cannot understand.

The developer said that they are using module LWP in Perl, but he doesn't
know what to use in ASP or ASP.NET.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in
message
news:E3**********************************@microsof t.com...
> Hi Peter,
> Have a look at the System.Net.HttpWebRequest object and use it to
> create a
> form post, you can then read the response and take any action you
> require
>
> HTH jd
>
> "Peter Afonin" wrote:
>
>> Hello,
>>
>> I have a simple client-side form that is checking the domain
>> availability
>> on
>> the domain registrar's server:
>>
>> <FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
>> method="post">
>> <input type="hidden" name="thisPage" value="pispCheckDomain">
>> <input type="hidden" name="username" value="test">
>> <input type="hidden" name="password" value="test">
>> domain_name: <input type="text" name="domain_name"><br>
>> <input type="submit" runat="server" id="Submit1" value="Submit
>> Query"
>> name="Submit1">
>> </FORM>
>>
>> It sends parameter thisPage with the value pispCheckDomain that tells
>> the
>> system to check availability of a domain domain_name.
>>
>> The server responds like this: Success: <domain name> is Available or
>> Success: <domain name> is Unavailable. I can see it on the page
>> https://www.webnames.ru/scripts/RegTimeSRS.pl
>>
>> How can I get these results to my page using ASP.NET? There is no
>> information that the server returns any parameters, so I need to
>> construct
>> the request myself. I usually use Request.QueryString("param") or
>> request.Form("param"), but in this case there is no "param" specified.
>> Should be pretty easy task for a web programmer, but I've never done
>> this
>> before. This should be similar to querying Whois results.
>>
>> I would appreciate your advice.
>>
>> Thank you,
>>
>> --
>> Peter Afonin
>>
>>
>>


Nov 19 '05 #9

P: n/a
Thank you very much, I really appreciate your help! I'll try this today.

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:5E**********************************@microsof t.com...
Hi Again Peter below is a function to post to a url and receive the response (note the class I copied it from has a property called TimeOutMs which does what it says really, waits TimeOutMs Milliseconds before aborting). As far as I can see your form string ("x=1&y=2") seems fine. Often you would use a
NameValue (E.g Request object) Collection to collect your data before
building your string. From memory the string mustn't have a leading ampersand (&). HTH jd

Private Function DoPostToServer(ByVal formContents As String, ByVal
postUrl As String) As String
Debug.WriteLine("DoPostToServer")
Dim sResponseString As String = ""

Dim myFormBytes() As Byte =
Text.ASCIIEncoding.ASCII.GetBytes(formContents)

Dim myRequest As Net.HttpWebRequest = Net.WebRequest.Create(postUrl) myRequest.ContentType = "application/x-www-form-urlencoded"
myRequest.Method = "POST"
myRequest.Timeout = Me.TimeOutMs
myRequest.ContentLength = myFormBytes.Length

Dim failure As Boolean = False
Dim outputStream As IO.Stream

Try
outputStream = myRequest.GetRequestStream()
outputStream.Write(myFormBytes, 0, myFormBytes.Length)
Catch ex As Exception
failure = True
Debug.WriteLine(ex.StackTrace + " " + ex.Message)
Finally
If Not outputStream Is Nothing Then
outputStream.Close()
End If
End Try

Dim myResponse As Net.HttpWebResponse
Dim myStreamReader As IO.StreamReader
Dim inputStream As IO.Stream

If Not failure Then
Dim responseSring As String
Try
myResponse = myRequest.GetResponse
inputStream = myResponse.GetResponseStream
myStreamReader = New IO.StreamReader(inputStream)

sResponseString = myStreamReader.ReadToEnd

Catch ex As Exception
failure = True
Debug.WriteLine(ex.StackTrace + " " + ex.Message)
Finally
If Not myStreamReader Is Nothing Then

myStreamReader.Close()
End If
If Not inputStream Is Nothing Then
inputStream.Close()
End If
If Not myResponse Is Nothing Then
myResponse.Close()
End If
End Try
End If
Debug.WriteLine(sResponseString)
Return sResponseString
End Function

"Peter Afonin" wrote:
I guess this is a better question: how should I post the form data using
HttpWebRequest object instead of the way I'm doing it now?

I've found the code sample:

Dim result As String = ""
Dim strPost As String = "x=1&y=2&z=YouPostedOk"
Dim myWriter As StreamWriter

Dim objRequest As HttpWebRequest = WebRequest.Create(url)
objRequest.Method = "POST"
objRequest.ContentLength = strPost.Length
objRequest.ContentType = "application/x-www-form-urlencoded"

Is this a way I should post it - as a string, where x, y and z are the field names? Or am I missing something?

Thank you,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message news:F1**********************************@microsof t.com...
Hi Peter,

If I understand correctly the result you are looking for is the 'page'
output, though probably in plain text (the link you posted gives me an error).

If you use the HttpWebRequest to post your form information (e.g the

domain
you're looking for etc) to the server you get an HttpWebResponse object
back.

This (httpWebResponse) object
contains among otherthings, a method called GetResponseStream which is
a System.IO.Stream containing the page output.

Read this stream using a Syatem.IO.StreamReader object to get the page

body
- in this case the string "success: suchadomain.com is availiable".

You then need to parse the string probably by splitting it on space chars and analysing the parts of the string array

HTH jd

"Peter Afonin" wrote:

> Hi,
>
> Thank you.
>
> No, but I'll look at it. I've set up several systems like this, and

always I
> was submitting my URL as a parameter so the system would send me the
> response to this address. In this case, however, it's not required, and this
> is what I cannot understand.
>
> The developer said that they are using module LWP in Perl, but he

doesn't
> know what to use in ASP or ASP.NET.
>
> Peter
>
> "london calling" <lo***********@discussions.microsoft.com> wrote in

message
> news:E3**********************************@microsof t.com...
> > Hi Peter,
> > Have a look at the System.Net.HttpWebRequest object and use it to

create a
> > form post, you can then read the response and take any action you

require
> >
> > HTH jd
> >
> > "Peter Afonin" wrote:
> >
> >> Hello,
> >>
> >> I have a simple client-side form that is checking the domain

availability
> >> on
> >> the domain registrar's server:
> >>
> >> <FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
> >> method="post">
> >> <input type="hidden" name="thisPage" value="pispCheckDomain">
> >> <input type="hidden" name="username" value="test">
> >> <input type="hidden" name="password" value="test">
> >> domain_name: <input type="text" name="domain_name"><br>
> >> <input type="submit" runat="server" id="Submit1" value="Submit

Query"
> >> name="Submit1">
> >> </FORM>
> >>
> >> It sends parameter thisPage with the value pispCheckDomain that
tells the
> >> system to check availability of a domain domain_name.
> >>
> >> The server responds like this: Success: <domain name> is
Available or > >> Success: <domain name> is Unavailable. I can see it on the page
> >> https://www.webnames.ru/scripts/RegTimeSRS.pl
> >>
> >> How can I get these results to my page using ASP.NET? There is no
> >> information that the server returns any parameters, so I need to
> >> construct
> >> the request myself. I usually use Request.QueryString("param") or
> >> request.Form("param"), but in this case there is no "param"

specified.
> >> Should be pretty easy task for a web programmer, but I've never

done this
> >> before. This should be similar to querying Whois results.
> >>
> >> I would appreciate your advice.
> >>
> >> Thank you,
> >>
> >> --
> >> Peter Afonin
> >>
> >>
> >>
>
>
>


Nov 19 '05 #10

P: n/a
It worked, thank you!

I still cannot make it work with SSL. I've found an article that provides a
workaround (http://support.microsoft.com/Default...;en-us;823177),
but for some reason couldn't make it work yet.

It's OK, since in my case SSL is not necessary.

Regards,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in message
news:5E**********************************@microsof t.com...
Hi Again Peter below is a function to post to a url and receive the
response
(note the class I copied it from has a property called TimeOutMs which
does
what it says really, waits TimeOutMs Milliseconds before aborting). As far
as
I can see your form string ("x=1&y=2") seems fine. Often you would use a
NameValue (E.g Request object) Collection to collect your data before
building your string. From memory the string mustn't have a leading
ampersand
(&). HTH jd

Private Function DoPostToServer(ByVal formContents As String, ByVal
postUrl As String) As String
Debug.WriteLine("DoPostToServer")
Dim sResponseString As String = ""

Dim myFormBytes() As Byte =
Text.ASCIIEncoding.ASCII.GetBytes(formContents)

Dim myRequest As Net.HttpWebRequest =
Net.WebRequest.Create(postUrl)
myRequest.ContentType = "application/x-www-form-urlencoded"
myRequest.Method = "POST"
myRequest.Timeout = Me.TimeOutMs
myRequest.ContentLength = myFormBytes.Length

Dim failure As Boolean = False
Dim outputStream As IO.Stream

Try
outputStream = myRequest.GetRequestStream()
outputStream.Write(myFormBytes, 0, myFormBytes.Length)
Catch ex As Exception
failure = True
Debug.WriteLine(ex.StackTrace + " " + ex.Message)
Finally
If Not outputStream Is Nothing Then
outputStream.Close()
End If
End Try

Dim myResponse As Net.HttpWebResponse
Dim myStreamReader As IO.StreamReader
Dim inputStream As IO.Stream

If Not failure Then
Dim responseSring As String
Try
myResponse = myRequest.GetResponse
inputStream = myResponse.GetResponseStream
myStreamReader = New IO.StreamReader(inputStream)

sResponseString = myStreamReader.ReadToEnd

Catch ex As Exception
failure = True
Debug.WriteLine(ex.StackTrace + " " + ex.Message)
Finally
If Not myStreamReader Is Nothing Then

myStreamReader.Close()
End If
If Not inputStream Is Nothing Then
inputStream.Close()
End If
If Not myResponse Is Nothing Then
myResponse.Close()
End If
End Try
End If
Debug.WriteLine(sResponseString)
Return sResponseString
End Function

"Peter Afonin" wrote:
I guess this is a better question: how should I post the form data using
HttpWebRequest object instead of the way I'm doing it now?

I've found the code sample:

Dim result As String = ""
Dim strPost As String = "x=1&y=2&z=YouPostedOk"
Dim myWriter As StreamWriter

Dim objRequest As HttpWebRequest = WebRequest.Create(url)
objRequest.Method = "POST"
objRequest.ContentLength = strPost.Length
objRequest.ContentType = "application/x-www-form-urlencoded"

Is this a way I should post it - as a string, where x, y and z are the
field
names? Or am I missing something?

Thank you,

Peter

"london calling" <lo***********@discussions.microsoft.com> wrote in
message
news:F1**********************************@microsof t.com...
> Hi Peter,
>
> If I understand correctly the result you are looking for is the 'page'
> output, though probably in plain text (the link you posted gives me an
> error).
>
> If you use the HttpWebRequest to post your form information (e.g the

domain
> you're looking for etc) to the server you get an HttpWebResponse object

back.
>
> This (httpWebResponse) object
> contains among otherthings, a method called GetResponseStream which is
> a
> System.IO.Stream containing the page output.
>
> Read this stream using a Syatem.IO.StreamReader object to get the page

body
> - in this case the string "success: suchadomain.com is availiable".
>
> You then need to parse the string probably by splitting it on space
> chars
> and analysing the parts of the string array
>
> HTH jd
>
> "Peter Afonin" wrote:
>
> > Hi,
> >
> > Thank you.
> >
> > No, but I'll look at it. I've set up several systems like this, and

always I
> > was submitting my URL as a parameter so the system would send me the
> > response to this address. In this case, however, it's not required,
> > and

this
> > is what I cannot understand.
> >
> > The developer said that they are using module LWP in Perl, but he

doesn't
> > know what to use in ASP or ASP.NET.
> >
> > Peter
> >
> > "london calling" <lo***********@discussions.microsoft.com> wrote in

message
> > news:E3**********************************@microsof t.com...
> > > Hi Peter,
> > > Have a look at the System.Net.HttpWebRequest object and use it to

create a
> > > form post, you can then read the response and take any action you

require
> > >
> > > HTH jd
> > >
> > > "Peter Afonin" wrote:
> > >
> > >> Hello,
> > >>
> > >> I have a simple client-side form that is checking the domain

availability
> > >> on
> > >> the domain registrar's server:
> > >>
> > >> <FORM action="https://www.webnames.ru/scripts/RegTimeSRS.pl"
> > >> method="post">
> > >> <input type="hidden" name="thisPage" value="pispCheckDomain">
> > >> <input type="hidden" name="username" value="test">
> > >> <input type="hidden" name="password" value="test">
> > >> domain_name: <input type="text" name="domain_name"><br>
> > >> <input type="submit" runat="server" id="Submit1" value="Submit

Query"
> > >> name="Submit1">
> > >> </FORM>
> > >>
> > >> It sends parameter thisPage with the value pispCheckDomain that
> > >> tells

the
> > >> system to check availability of a domain domain_name.
> > >>
> > >> The server responds like this: Success: <domain name> is Available
> > >> or
> > >> Success: <domain name> is Unavailable. I can see it on the page
> > >> https://www.webnames.ru/scripts/RegTimeSRS.pl
> > >>
> > >> How can I get these results to my page using ASP.NET? There is no
> > >> information that the server returns any parameters, so I need to
> > >> construct
> > >> the request myself. I usually use Request.QueryString("param") or
> > >> request.Form("param"), but in this case there is no "param"

specified.
> > >> Should be pretty easy task for a web programmer, but I've never
> > >> done

this
> > >> before. This should be similar to querying Whois results.
> > >>
> > >> I would appreciate your advice.
> > >>
> > >> Thank you,
> > >>
> > >> --
> > >> Peter Afonin
> > >>
> > >>
> > >>
> >
> >
> >


Nov 19 '05 #11

This discussion thread is closed

Replies have been disabled for this discussion.