C# Zip

Discussion in 'ASP .Net Web Services' started by Aung, Aug 24, 2003.

  1. Aung

    Aung Guest

    Has anybody develop RFC1950 and RFC1951 compliant Zip utility?

    Any pointer will be appreciated.
    Aung, Aug 24, 2003
    #1
    1. Advertising

  2. Pieter Philippaerts, Aug 25, 2003
    #2
    1. Advertising

  3. Aung

    Aung Guest

    HTTPS with WebResponse class

    Hello,

    I am having a problem with WebRequest class. I used the following code to
    post some data to a page and retrive back the response. It works fine with
    http:// connection. When i use that with https:// connection, it thrown an
    exception "The underlying connection was closed: Could not establish trust
    relationship with remote server.". I am using self sign certificate on the
    web server and the root and CA certificates are installed on the client
    machine using the following code.

    your suggestions will be great appreciated.

    Aung

    public string postForm(string url, string postData)

    {

    string retStr="", tempStr;

    HttpWebResponse result = null;

    try

    {

    HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);

    req.Method = "POST";

    req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET CLR
    1.0.3705)";

    req.ContentType = "application/x-www-form-urlencoded";

    StringBuilder UrlEncoded = new StringBuilder();

    Char[] reserved = {'?', '=', '&'};

    byte[] SomeBytes = null;

    if (postData != null)

    {

    int i=0, j;

    while(i<postData.Length)

    {

    j=postData.IndexOfAny(reserved, i);

    if (j==-1)

    {

    UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
    postData.Length-i)));

    break;

    }

    UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));

    UrlEncoded.Append(postData.Substring(j,1));

    i = j+1;

    }

    SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());

    req.ContentLength = SomeBytes.Length;

    Stream newStream = req.GetRequestStream();

    newStream.Write(SomeBytes, 0, SomeBytes.Length);

    newStream.Close();

    }

    else

    {

    req.ContentLength = 0;

    }

    result = (HttpWebResponse) req.GetResponse();

    Stream ReceiveStream = result.GetResponseStream();

    Encoding encode = System.Text.Encoding.GetEncoding("utf-8");

    StreamReader sr = new StreamReader( ReceiveStream, encode );

    Char[] read = new Char[256];

    int count = sr.Read( read, 0, 256 );

    while (count > 0)

    {

    tempStr = new String(read, 0, count);

    retStr += tempStr;

    count = sr.Read(read, 0, 256);

    }

    retStr.Trim();

    }

    catch (Exception e)

    {

    retStr = "Error!!";

    }

    finally

    {

    if ( result != null )

    {

    result.Close();

    }

    }

    return retStr;

    }
    Aung, Aug 29, 2003
    #3
  4. Re: HTTPS with WebResponse class

    Best way to test your client is see if you can do the same from IE. Most of
    the System.Net classes take configuration from IE behind the scenes. If it
    doesn't work in IE and you do get it working, make sure to close all
    instances of IE so the data persists before re-running the .NET application.
    Some changes are considered dynamic and won't be written to the registry
    until close.

    Hopefully you find that IE won't connect either. I find it hard to believe
    that .NET would have a more stringent implementation of SSL than IE. But it
    is possible.

    --
    Justin Rogers
    DigiTec Web Consultants, LLC.

    "Aung" <aung@aungkyawmoe_NOSPAM_.net> wrote in message
    news:...
    > Hello,
    >
    > I am having a problem with WebRequest class. I used the following code to
    > post some data to a page and retrive back the response. It works fine with
    > http:// connection. When i use that with https:// connection, it thrown an
    > exception "The underlying connection was closed: Could not establish trust
    > relationship with remote server.". I am using self sign certificate on the
    > web server and the root and CA certificates are installed on the client
    > machine using the following code.
    >
    > your suggestions will be great appreciated.
    >
    > Aung
    >
    > public string postForm(string url, string postData)
    >
    > {
    >
    > string retStr="", tempStr;
    >
    > HttpWebResponse result = null;
    >
    > try
    >
    > {
    >
    > HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
    >
    > req.Method = "POST";
    >
    > req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET

    CLR
    > 1.0.3705)";
    >
    > req.ContentType = "application/x-www-form-urlencoded";
    >
    > StringBuilder UrlEncoded = new StringBuilder();
    >
    > Char[] reserved = {'?', '=', '&'};
    >
    > byte[] SomeBytes = null;
    >
    > if (postData != null)
    >
    > {
    >
    > int i=0, j;
    >
    > while(i<postData.Length)
    >
    > {
    >
    > j=postData.IndexOfAny(reserved, i);
    >
    > if (j==-1)
    >
    > {
    >
    > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
    > postData.Length-i)));
    >
    > break;
    >
    > }
    >
    > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
    >
    > UrlEncoded.Append(postData.Substring(j,1));
    >
    > i = j+1;
    >
    > }
    >
    > SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
    >
    > req.ContentLength = SomeBytes.Length;
    >
    > Stream newStream = req.GetRequestStream();
    >
    > newStream.Write(SomeBytes, 0, SomeBytes.Length);
    >
    > newStream.Close();
    >
    > }
    >
    > else
    >
    > {
    >
    > req.ContentLength = 0;
    >
    > }
    >
    > result = (HttpWebResponse) req.GetResponse();
    >
    > Stream ReceiveStream = result.GetResponseStream();
    >
    > Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
    >
    > StreamReader sr = new StreamReader( ReceiveStream, encode );
    >
    > Char[] read = new Char[256];
    >
    > int count = sr.Read( read, 0, 256 );
    >
    > while (count > 0)
    >
    > {
    >
    > tempStr = new String(read, 0, count);
    >
    > retStr += tempStr;
    >
    > count = sr.Read(read, 0, 256);
    >
    > }
    >
    > retStr.Trim();
    >
    > }
    >
    > catch (Exception e)
    >
    > {
    >
    > retStr = "Error!!";
    >
    > }
    >
    > finally
    >
    > {
    >
    > if ( result != null )
    >
    > {
    >
    > result.Close();
    >
    > }
    >
    > }
    >
    > return retStr;
    >
    > }
    >
    >
    >
    Justin Rogers, Aug 29, 2003
    #4
  5. Re: HTTPS with WebResponse class

    A thing that I have found that can help is to implement a class based on
    ICertificatePolicy that handles the CheckValidationResult method. If you
    set an instance of your class to the ServicePointManager.CertificatePolicy
    property, you can override the behavior of certificate handling errors.
    Returning true will cause the system to ignore all errors, which is
    sometimes helpful for testing (but a bad a idea for production code).

    HTH,

    Joe K.

    "Justin Rogers" <> wrote in message
    news:%...
    > Best way to test your client is see if you can do the same from IE. Most

    of
    > the System.Net classes take configuration from IE behind the scenes. If

    it
    > doesn't work in IE and you do get it working, make sure to close all
    > instances of IE so the data persists before re-running the .NET

    application.
    > Some changes are considered dynamic and won't be written to the registry
    > until close.
    >
    > Hopefully you find that IE won't connect either. I find it hard to

    believe
    > that .NET would have a more stringent implementation of SSL than IE. But

    it
    > is possible.
    >
    > --
    > Justin Rogers
    > DigiTec Web Consultants, LLC.
    >
    > "Aung" <aung@aungkyawmoe_NOSPAM_.net> wrote in message
    > news:...
    > > Hello,
    > >
    > > I am having a problem with WebRequest class. I used the following code

    to
    > > post some data to a page and retrive back the response. It works fine

    with
    > > http:// connection. When i use that with https:// connection, it thrown

    an
    > > exception "The underlying connection was closed: Could not establish

    trust
    > > relationship with remote server.". I am using self sign certificate on

    the
    > > web server and the root and CA certificates are installed on the client
    > > machine using the following code.
    > >
    > > your suggestions will be great appreciated.
    > >
    > > Aung
    > >
    > > public string postForm(string url, string postData)
    > >
    > > {
    > >
    > > string retStr="", tempStr;
    > >
    > > HttpWebResponse result = null;
    > >
    > > try
    > >
    > > {
    > >
    > > HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
    > >
    > > req.Method = "POST";
    > >
    > > req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; .NET

    > CLR
    > > 1.0.3705)";
    > >
    > > req.ContentType = "application/x-www-form-urlencoded";
    > >
    > > StringBuilder UrlEncoded = new StringBuilder();
    > >
    > > Char[] reserved = {'?', '=', '&'};
    > >
    > > byte[] SomeBytes = null;
    > >
    > > if (postData != null)
    > >
    > > {
    > >
    > > int i=0, j;
    > >
    > > while(i<postData.Length)
    > >
    > > {
    > >
    > > j=postData.IndexOfAny(reserved, i);
    > >
    > > if (j==-1)
    > >
    > > {
    > >
    > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
    > > postData.Length-i)));
    > >
    > > break;
    > >
    > > }
    > >
    > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
    > >
    > > UrlEncoded.Append(postData.Substring(j,1));
    > >
    > > i = j+1;
    > >
    > > }
    > >
    > > SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
    > >
    > > req.ContentLength = SomeBytes.Length;
    > >
    > > Stream newStream = req.GetRequestStream();
    > >
    > > newStream.Write(SomeBytes, 0, SomeBytes.Length);
    > >
    > > newStream.Close();
    > >
    > > }
    > >
    > > else
    > >
    > > {
    > >
    > > req.ContentLength = 0;
    > >
    > > }
    > >
    > > result = (HttpWebResponse) req.GetResponse();
    > >
    > > Stream ReceiveStream = result.GetResponseStream();
    > >
    > > Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
    > >
    > > StreamReader sr = new StreamReader( ReceiveStream, encode );
    > >
    > > Char[] read = new Char[256];
    > >
    > > int count = sr.Read( read, 0, 256 );
    > >
    > > while (count > 0)
    > >
    > > {
    > >
    > > tempStr = new String(read, 0, count);
    > >
    > > retStr += tempStr;
    > >
    > > count = sr.Read(read, 0, 256);
    > >
    > > }
    > >
    > > retStr.Trim();
    > >
    > > }
    > >
    > > catch (Exception e)
    > >
    > > {
    > >
    > > retStr = "Error!!";
    > >
    > > }
    > >
    > > finally
    > >
    > > {
    > >
    > > if ( result != null )
    > >
    > > {
    > >
    > > result.Close();
    > >
    > > }
    > >
    > > }
    > >
    > > return retStr;
    > >
    > > }
    > >
    > >
    > >

    >
    >
    Joe Kaplan \(MVP - ADSI\), Aug 29, 2003
    #5
  6. Aung

    Drebin Guest

    Re: HTTPS with WebResponse class

    Egads!! BAD cross-poster - BAD!!

    Anyhow, yes - this is exactly what the problem is. You can't programatically
    specify a trust list (at least I haven't run across a way) - so even if you
    log in with that account, and add the certificate authority -
    programatically - it will still not trust that CA.

    The ONLY way I've seen this or been able to get this to work (because I
    needed to do the same thing) - is you have to get real certificates, like
    from Verisign or Thawte..


    "Aung" <aung@aungkyawmoe_NOSPAM_.net> wrote in message
    news:...
    > Yes. i used IE before calling from my application. IE popup with a warning
    > message telling me that "certificate on the server is not the same name

    bla
    > bla. " and when i hit OK, i can view the SSL page with form.
    >
    > my .NET application cannot.
    >
    >
    > "Justin Rogers" <> wrote in message
    > news:#...
    > > Best way to test your client is see if you can do the same from IE.

    Most
    > of
    > > the System.Net classes take configuration from IE behind the scenes. If

    > it
    > > doesn't work in IE and you do get it working, make sure to close all
    > > instances of IE so the data persists before re-running the .NET

    > application.
    > > Some changes are considered dynamic and won't be written to the registry
    > > until close.
    > >
    > > Hopefully you find that IE won't connect either. I find it hard to

    > believe
    > > that .NET would have a more stringent implementation of SSL than IE.

    But
    > it
    > > is possible.
    > >
    > > --
    > > Justin Rogers
    > > DigiTec Web Consultants, LLC.
    > >
    > > "Aung" <aung@aungkyawmoe_NOSPAM_.net> wrote in message
    > > news:...
    > > > Hello,
    > > >
    > > > I am having a problem with WebRequest class. I used the following code

    > to
    > > > post some data to a page and retrive back the response. It works fine

    > with
    > > > http:// connection. When i use that with https:// connection, it

    thrown
    > an
    > > > exception "The underlying connection was closed: Could not establish

    > trust
    > > > relationship with remote server.". I am using self sign certificate on

    > the
    > > > web server and the root and CA certificates are installed on the

    client
    > > > machine using the following code.
    > > >
    > > > your suggestions will be great appreciated.
    > > >
    > > > Aung
    > > >
    > > > public string postForm(string url, string postData)
    > > >
    > > > {
    > > >
    > > > string retStr="", tempStr;
    > > >
    > > > HttpWebResponse result = null;
    > > >
    > > > try
    > > >
    > > > {
    > > >
    > > > HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
    > > >
    > > > req.Method = "POST";
    > > >
    > > > req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;

    ..NET
    > > CLR
    > > > 1.0.3705)";
    > > >
    > > > req.ContentType = "application/x-www-form-urlencoded";
    > > >
    > > > StringBuilder UrlEncoded = new StringBuilder();
    > > >
    > > > Char[] reserved = {'?', '=', '&'};
    > > >
    > > > byte[] SomeBytes = null;
    > > >
    > > > if (postData != null)
    > > >
    > > > {
    > > >
    > > > int i=0, j;
    > > >
    > > > while(i<postData.Length)
    > > >
    > > > {
    > > >
    > > > j=postData.IndexOfAny(reserved, i);
    > > >
    > > > if (j==-1)
    > > >
    > > > {
    > > >
    > > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
    > > > postData.Length-i)));
    > > >
    > > > break;
    > > >
    > > > }
    > > >
    > > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
    > > >
    > > > UrlEncoded.Append(postData.Substring(j,1));
    > > >
    > > > i = j+1;
    > > >
    > > > }
    > > >
    > > > SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
    > > >
    > > > req.ContentLength = SomeBytes.Length;
    > > >
    > > > Stream newStream = req.GetRequestStream();
    > > >
    > > > newStream.Write(SomeBytes, 0, SomeBytes.Length);
    > > >
    > > > newStream.Close();
    > > >
    > > > }
    > > >
    > > > else
    > > >
    > > > {
    > > >
    > > > req.ContentLength = 0;
    > > >
    > > > }
    > > >
    > > > result = (HttpWebResponse) req.GetResponse();
    > > >
    > > > Stream ReceiveStream = result.GetResponseStream();
    > > >
    > > > Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
    > > >
    > > > StreamReader sr = new StreamReader( ReceiveStream, encode );
    > > >
    > > > Char[] read = new Char[256];
    > > >
    > > > int count = sr.Read( read, 0, 256 );
    > > >
    > > > while (count > 0)
    > > >
    > > > {
    > > >
    > > > tempStr = new String(read, 0, count);
    > > >
    > > > retStr += tempStr;
    > > >
    > > > count = sr.Read(read, 0, 256);
    > > >
    > > > }
    > > >
    > > > retStr.Trim();
    > > >
    > > > }
    > > >
    > > > catch (Exception e)
    > > >
    > > > {
    > > >
    > > > retStr = "Error!!";
    > > >
    > > > }
    > > >
    > > > finally
    > > >
    > > > {
    > > >
    > > > if ( result != null )
    > > >
    > > > {
    > > >
    > > > result.Close();
    > > >
    > > > }
    > > >
    > > > }
    > > >
    > > > return retStr;
    > > >
    > > > }
    > > >
    > > >
    > > >

    > >
    > >

    >
    >
    Drebin, Aug 30, 2003
    #6
  7. Re: HTTPS with WebResponse class

    I was having the same issue using a MS Certificate Server . If you are using
    you
    own certificate authority to issue the certificate the problem lies in the
    fact
    that your client computer does not trust the issuing certificate authority.
    Read
    the section "Install Your Certification Authority's Certificate on the
    Client"
    from http://support.microsoft.com/default.aspx?scid=kb;en-us;324284 IE gives
    you
    the option to accept this discrepancy, but .net does not.

    Tim Cartwright //Will write code for food


    "Drebin" <> wrote in message
    news:ZIS3b.2862$...
    > Egads!! BAD cross-poster - BAD!!
    >
    > Anyhow, yes - this is exactly what the problem is. You can't

    programatically
    > specify a trust list (at least I haven't run across a way) - so even if

    you
    > log in with that account, and add the certificate authority -
    > programatically - it will still not trust that CA.
    >
    > The ONLY way I've seen this or been able to get this to work (because I
    > needed to do the same thing) - is you have to get real certificates, like
    > from Verisign or Thawte..
    >
    >
    > "Aung" <aung@aungkyawmoe_NOSPAM_.net> wrote in message
    > news:...
    > > Yes. i used IE before calling from my application. IE popup with a

    warning
    > > message telling me that "certificate on the server is not the same name

    > bla
    > > bla. " and when i hit OK, i can view the SSL page with form.
    > >
    > > my .NET application cannot.
    > >
    > >
    > > "Justin Rogers" <> wrote in message
    > > news:#...
    > > > Best way to test your client is see if you can do the same from IE.

    > Most
    > > of
    > > > the System.Net classes take configuration from IE behind the scenes.

    If
    > > it
    > > > doesn't work in IE and you do get it working, make sure to close all
    > > > instances of IE so the data persists before re-running the .NET

    > > application.
    > > > Some changes are considered dynamic and won't be written to the

    registry
    > > > until close.
    > > >
    > > > Hopefully you find that IE won't connect either. I find it hard to

    > > believe
    > > > that .NET would have a more stringent implementation of SSL than IE.

    > But
    > > it
    > > > is possible.
    > > >
    > > > --
    > > > Justin Rogers
    > > > DigiTec Web Consultants, LLC.
    > > >
    > > > "Aung" <aung@aungkyawmoe_NOSPAM_.net> wrote in message
    > > > news:...
    > > > > Hello,
    > > > >
    > > > > I am having a problem with WebRequest class. I used the following

    code
    > > to
    > > > > post some data to a page and retrive back the response. It works

    fine
    > > with
    > > > > http:// connection. When i use that with https:// connection, it

    > thrown
    > > an
    > > > > exception "The underlying connection was closed: Could not establish

    > > trust
    > > > > relationship with remote server.". I am using self sign certificate

    on
    > > the
    > > > > web server and the root and CA certificates are installed on the

    > client
    > > > > machine using the following code.
    > > > >
    > > > > your suggestions will be great appreciated.
    > > > >
    > > > > Aung
    > > > >
    > > > > public string postForm(string url, string postData)
    > > > >
    > > > > {
    > > > >
    > > > > string retStr="", tempStr;
    > > > >
    > > > > HttpWebResponse result = null;
    > > > >
    > > > > try
    > > > >
    > > > > {
    > > > >
    > > > > HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
    > > > >
    > > > > req.Method = "POST";
    > > > >
    > > > > req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;

    > .NET
    > > > CLR
    > > > > 1.0.3705)";
    > > > >
    > > > > req.ContentType = "application/x-www-form-urlencoded";
    > > > >
    > > > > StringBuilder UrlEncoded = new StringBuilder();
    > > > >
    > > > > Char[] reserved = {'?', '=', '&'};
    > > > >
    > > > > byte[] SomeBytes = null;
    > > > >
    > > > > if (postData != null)
    > > > >
    > > > > {
    > > > >
    > > > > int i=0, j;
    > > > >
    > > > > while(i<postData.Length)
    > > > >
    > > > > {
    > > > >
    > > > > j=postData.IndexOfAny(reserved, i);
    > > > >
    > > > > if (j==-1)
    > > > >
    > > > > {
    > > > >
    > > > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
    > > > > postData.Length-i)));
    > > > >
    > > > > break;
    > > > >
    > > > > }
    > > > >
    > > > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,

    j-i)));
    > > > >
    > > > > UrlEncoded.Append(postData.Substring(j,1));
    > > > >
    > > > > i = j+1;
    > > > >
    > > > > }
    > > > >
    > > > > SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
    > > > >
    > > > > req.ContentLength = SomeBytes.Length;
    > > > >
    > > > > Stream newStream = req.GetRequestStream();
    > > > >
    > > > > newStream.Write(SomeBytes, 0, SomeBytes.Length);
    > > > >
    > > > > newStream.Close();
    > > > >
    > > > > }
    > > > >
    > > > > else
    > > > >
    > > > > {
    > > > >
    > > > > req.ContentLength = 0;
    > > > >
    > > > > }
    > > > >
    > > > > result = (HttpWebResponse) req.GetResponse();
    > > > >
    > > > > Stream ReceiveStream = result.GetResponseStream();
    > > > >
    > > > > Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
    > > > >
    > > > > StreamReader sr = new StreamReader( ReceiveStream, encode );
    > > > >
    > > > > Char[] read = new Char[256];
    > > > >
    > > > > int count = sr.Read( read, 0, 256 );
    > > > >
    > > > > while (count > 0)
    > > > >
    > > > > {
    > > > >
    > > > > tempStr = new String(read, 0, count);
    > > > >
    > > > > retStr += tempStr;
    > > > >
    > > > > count = sr.Read(read, 0, 256);
    > > > >
    > > > > }
    > > > >
    > > > > retStr.Trim();
    > > > >
    > > > > }
    > > > >
    > > > > catch (Exception e)
    > > > >
    > > > > {
    > > > >
    > > > > retStr = "Error!!";
    > > > >
    > > > > }
    > > > >
    > > > > finally
    > > > >
    > > > > {
    > > > >
    > > > > if ( result != null )
    > > > >
    > > > > {
    > > > >
    > > > > result.Close();
    > > > >
    > > > > }
    > > > >
    > > > > }
    > > > >
    > > > > return retStr;
    > > > >
    > > > > }
    > > > >
    > > > >
    > > > >
    > > >
    > > >

    > >
    > >

    >
    >
    Tim Cartwright, Sep 4, 2003
    #7
  8. Re: HTTPS with WebResponse class

    I was trying to do that a few months ago and I still need it.
    I didn't resolve the problem, I have my own certificates.
    May you show what you did?

    Thanks,
    Gustavo.


    "Joe Kaplan (MVP - ADSI)" <> wrote
    in message news:...
    > A thing that I have found that can help is to implement a class based on
    > ICertificatePolicy that handles the CheckValidationResult method. If you
    > set an instance of your class to the ServicePointManager.CertificatePolicy
    > property, you can override the behavior of certificate handling errors.
    > Returning true will cause the system to ignore all errors, which is
    > sometimes helpful for testing (but a bad a idea for production code).
    >
    > HTH,
    >
    > Joe K.
    >
    > "Justin Rogers" <> wrote in message
    > news:%...
    > > Best way to test your client is see if you can do the same from IE.

    Most
    > of
    > > the System.Net classes take configuration from IE behind the scenes. If

    > it
    > > doesn't work in IE and you do get it working, make sure to close all
    > > instances of IE so the data persists before re-running the .NET

    > application.
    > > Some changes are considered dynamic and won't be written to the registry
    > > until close.
    > >
    > > Hopefully you find that IE won't connect either. I find it hard to

    > believe
    > > that .NET would have a more stringent implementation of SSL than IE.

    But
    > it
    > > is possible.
    > >
    > > --
    > > Justin Rogers
    > > DigiTec Web Consultants, LLC.
    > >
    > > "Aung" <aung@aungkyawmoe_NOSPAM_.net> wrote in message
    > > news:...
    > > > Hello,
    > > >
    > > > I am having a problem with WebRequest class. I used the following code

    > to
    > > > post some data to a page and retrive back the response. It works fine

    > with
    > > > http:// connection. When i use that with https:// connection, it

    thrown
    > an
    > > > exception "The underlying connection was closed: Could not establish

    > trust
    > > > relationship with remote server.". I am using self sign certificate on

    > the
    > > > web server and the root and CA certificates are installed on the

    client
    > > > machine using the following code.
    > > >
    > > > your suggestions will be great appreciated.
    > > >
    > > > Aung
    > > >
    > > > public string postForm(string url, string postData)
    > > >
    > > > {
    > > >
    > > > string retStr="", tempStr;
    > > >
    > > > HttpWebResponse result = null;
    > > >
    > > > try
    > > >
    > > > {
    > > >
    > > > HttpWebRequest req = (HttpWebRequest) WebRequest.Create(url);
    > > >
    > > > req.Method = "POST";
    > > >
    > > > req.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;

    ..NET
    > > CLR
    > > > 1.0.3705)";
    > > >
    > > > req.ContentType = "application/x-www-form-urlencoded";
    > > >
    > > > StringBuilder UrlEncoded = new StringBuilder();
    > > >
    > > > Char[] reserved = {'?', '=', '&'};
    > > >
    > > > byte[] SomeBytes = null;
    > > >
    > > > if (postData != null)
    > > >
    > > > {
    > > >
    > > > int i=0, j;
    > > >
    > > > while(i<postData.Length)
    > > >
    > > > {
    > > >
    > > > j=postData.IndexOfAny(reserved, i);
    > > >
    > > > if (j==-1)
    > > >
    > > > {
    > > >
    > > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i,
    > > > postData.Length-i)));
    > > >
    > > > break;
    > > >
    > > > }
    > > >
    > > > UrlEncoded.Append(HttpUtility.UrlEncode(postData.Substring(i, j-i)));
    > > >
    > > > UrlEncoded.Append(postData.Substring(j,1));
    > > >
    > > > i = j+1;
    > > >
    > > > }
    > > >
    > > > SomeBytes = Encoding.UTF8.GetBytes(UrlEncoded.ToString());
    > > >
    > > > req.ContentLength = SomeBytes.Length;
    > > >
    > > > Stream newStream = req.GetRequestStream();
    > > >
    > > > newStream.Write(SomeBytes, 0, SomeBytes.Length);
    > > >
    > > > newStream.Close();
    > > >
    > > > }
    > > >
    > > > else
    > > >
    > > > {
    > > >
    > > > req.ContentLength = 0;
    > > >
    > > > }
    > > >
    > > > result = (HttpWebResponse) req.GetResponse();
    > > >
    > > > Stream ReceiveStream = result.GetResponseStream();
    > > >
    > > > Encoding encode = System.Text.Encoding.GetEncoding("utf-8");
    > > >
    > > > StreamReader sr = new StreamReader( ReceiveStream, encode );
    > > >
    > > > Char[] read = new Char[256];
    > > >
    > > > int count = sr.Read( read, 0, 256 );
    > > >
    > > > while (count > 0)
    > > >
    > > > {
    > > >
    > > > tempStr = new String(read, 0, count);
    > > >
    > > > retStr += tempStr;
    > > >
    > > > count = sr.Read(read, 0, 256);
    > > >
    > > > }
    > > >
    > > > retStr.Trim();
    > > >
    > > > }
    > > >
    > > > catch (Exception e)
    > > >
    > > > {
    > > >
    > > > retStr = "Error!!";
    > > >
    > > > }
    > > >
    > > > finally
    > > >
    > > > {
    > > >
    > > > if ( result != null )
    > > >
    > > > {
    > > >
    > > > result.Close();
    > > >
    > > > }
    > > >
    > > > }
    > > >
    > > > return retStr;
    > > >
    > > > }
    > > >
    > > >
    > > >

    > >
    > >

    >
    >
    Franco Gustavo, Sep 26, 2003
    #8
    1. Advertising

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

It takes just 2 minutes to sign up (and it's free!). Just click the sign up button to choose a username and then you can ask your own questions on the forum.
Similar Threads
  1. Alex Hunsley
    Replies:
    1
    Views:
    582
    Andrew Thompson
    Sep 16, 2004
  2. Replies:
    0
    Views:
    1,691
  3. HARI OM
    Replies:
    0
    Views:
    17,373
    HARI OM
    May 3, 2005
  4. sunil_varma
    Replies:
    1
    Views:
    1,147
  5. Dave Kuhlman

    ANN: zip-ls -- Zip file listing program

    Dave Kuhlman, Jul 19, 2003, in forum: Python
    Replies:
    0
    Views:
    393
    Dave Kuhlman
    Jul 19, 2003
Loading...

Share This Page