[Mono-list] MONO HttpWebRequest, HttpWebResponse problems

Kieren Drapala (NetTeller) kieren.drapala@netteller.com.au
Fri, 2 Apr 2004 16:47:24 +1000


This message is in MIME format. Since your mail reader does not understand
this format, some or all of this message may not be legible.

------_=_NextPart_001_01C4187E.5B1E39F0
Content-Type: text/plain

Hello, 
I am having HttpWebRequest, HttpWebResponse problems. Here is an example
which is similar to what I'm trying to do.
 
 
using System;
using System.IO;
using System.Diagnostics;
using System.Text;
using System.Threading;
using System.Net;
 

namespace ConsoleApplication4
{
 
 public class Connect
 {
  private const int BUFFER_SIZE= 1024;
  private int TIME_OUT;
  private ManualResetEvent m_eventDone;
  private HttpWebRequest m_httpReq;
  private byte[] m_btRead;
  private StringBuilder m_sbResp;
  private string m_sPost;
  private Stream m_stResponse;
  private Decoder m_dec = Encoding.UTF8.GetDecoder();
  private string m_sResp;
  private bool m_bGotResponse = false;
 

  public Connect()
  {
   m_eventDone = new ManualResetEvent(false);
   m_btRead = new byte[BUFFER_SIZE];
   m_sbResp = new StringBuilder(String.Empty);
  }
 
  public int HUBTimeOut
  {
   set { TIME_OUT = value *1000;}
  }
  public string strResponse
  {
   get { return m_sResp;}
  }
 
  public bool GotResponse
  {
   get { return m_bGotResponse;}
  }
 
  public string postToURL(string sURL, string sData, string ProxyAddress, 
   string ProxyUsername, string ProxyPassword)
  {
   m_httpReq = (HttpWebRequest)WebRequest.Create(sURL);
 
   /**
      * If you are behind a firewall and you do not have your browser proxy
setup
      * you need to use the following proxy creation code. */
 
   if ((ProxyAddress != null) && (ProxyAddress != System.String.Empty))
   {
    // Create a proxy object.
    WebProxy myProxy = new WebProxy();
 
    // Associate a new Uri object to the _wProxy object, using the proxy
address
    // selected by the user.
    myProxy.Address = new Uri(ProxyAddress);
    if (((ProxyUsername != null) && (ProxyUsername != System.String.Empty)) 
     && ((ProxyPassword != null) && (ProxyPassword != System.String.Empty)))
     myProxy.Credentials=new NetworkCredential(ProxyUsername,
ProxyPassword);
       
    // Finally, initialize the Web request object proxy property with the
_wProxy
    // object.
    m_httpReq.Proxy=myProxy;
   }
 
   m_httpReq.Method = "POST";
   m_httpReq.ContentType = "application/x-www-form-urlencoded";
   m_httpReq.ContentLength = sData.Length;
 
   Stream st = m_httpReq.GetRequestStream();
 
   StreamWriter stw = new StreamWriter(st);
   stw.Write(sData);
 
   stw.Flush();
   stw.Close();
 
   IAsyncResult ar = (IAsyncResult) m_httpReq.BeginGetResponse(
    new AsyncCallback(callback), this);
 
   //hold until we are done reading
   //put a timeout here too
   if ((TIME_OUT == 0))
    TIME_OUT = 50000;
   m_bGotResponse = m_eventDone.WaitOne(TIME_OUT,false);
   m_sPost = sData;
   return m_sResp;
  }
 
  public string getPostData()
  {
   return m_sPost;
  }
 
  private void callback(IAsyncResult ar)
  {
 
   HttpWebResponse httpResp = (HttpWebResponse)m_httpReq.EndGetResponse(ar);

 
   //  Start reading data from the response stream.
   m_stResponse = httpResp.GetResponseStream();
 

   //  Pass rs.BufferRead to BeginRead. Read data into rs.BufferRead
   IAsyncResult iarRead = m_stResponse .BeginRead(m_btRead, 0, 
    BUFFER_SIZE, new AsyncCallback(readCallback), this); 
  }
 
          
  private void readCallback(IAsyncResult asyncResult)
  {
 
   // Read rs.BufferRead to verify that it contains data. 
   int iRead = m_stResponse.EndRead( asyncResult );
   if (iRead > 0)
   {
    // Prepare a Char array buffer for converting to Unicode.
    Char[] charBuffer = new Char[BUFFER_SIZE];
         
    // Convert byte stream to Char array and then to String.
    // len contains the number of characters converted to Unicode.
    int iLen = m_dec.GetChars(m_btRead, 0, BUFFER_SIZE, charBuffer, 0);
    String s = new String(charBuffer, 0, iLen);
 
    // Append the recently read data to the stringbuilder
    m_sbResp.Append(Encoding.ASCII.GetString(m_btRead, 0, iRead));         
 
    // Continue reading data untilm_stResponse.EndRead returns -1.
    IAsyncResult ar = m_stResponse.BeginRead( m_btRead, 0, BUFFER_SIZE, 
     new AsyncCallback(readCallback), this);
   }
   else
   {
    if(m_btRead.Length>0)
    {
     //set our response string                  
     m_sResp = m_sbResp.ToString();
    }
    // Close down the response stream.
    m_stResponse.Close();         
    // Set the ManualResetEvent so the main thread can exit.
    m_eventDone.Set();                           
   }
   return;
  }    
 
 }
 

 /// <summary>
 /// Summary description for Class1.
 /// </summary>
 
 class Class1
 {
  /// <summary>
  /// The main entry point for the application.
  /// </summary>
  [STAThread]
  static void Main(string[] args)
  {
   string result1 = "";
   Connect cn1 = new Connect();
   cn1.HUBTimeOut = 60;
 
   cn1.postToURL(" <https://sometestHTTPservice.com.au/OFXServlet>
https://sometestHTTPservice.com.au/OFXServlet","","http://myproxy:80/",
    "","");  
   if (cn1.GotResponse)
   {
    result1 = cn1.strResponse;
    Console.WriteLine(result1);
   }
  }
 }
}

 
Output on windows [.NET Framework 1.1, Windows XP Pro]
 

<OFX>
<SIGNONMSGSRSV1>
<SONRS>
<STATUS>
<CODE>20007</CODE>
<SEVERITY>ERROR</SEVERITY>
<MESSAGE>DTDValidationError:XML_DOES_NOT_CONFORM_TO_DTD</MESSAGE>
</STATUS>
<DTSERVER>20040402055319</DTSERVER>
<LANGUAGE>ENG</LANGUAGE>
</SONRS>
</SIGNONMSGSRSV1>
</OFX>
 
 
Output on Debian [Tried with both Mono JIT compiler version 0.30.2 and Mono
JIT compiler version 0.29, Linux  2.4.23]
 
<HTML></HTML>

 
Please advise, as class status states these objects are finished, thanks in
advance, regards, 
 
Kieren Drapala

Analyst / Programmer


------_=_NextPart_001_01C4187E.5B1E39F0
Content-Type: text/html

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html; charset=us-ascii">
<TITLE>Message</TITLE>

<META content="MSHTML 6.00.2800.1276" name=GENERATOR></HEAD>
<BODY>
<DIV><FONT face=Arial size=2><SPAN class=016580606-02042004>Hello, 
</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN class=016580606-02042004>I am having 
HttpWebRequest, HttpWebResponse problems. Here is an example which is similar to 
what I'm trying to do.</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>using System;<BR>using System.IO;<BR>using 
System.Diagnostics;<BR>using System.Text;<BR>using System.Threading;<BR>using 
System.Net;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><BR><FONT face=Arial size=2>namespace ConsoleApplication4<BR>{</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;public class 
Connect<BR>&nbsp;{<BR>&nbsp;&nbsp;private const int BUFFER_SIZE= 
1024;<BR>&nbsp;&nbsp;private int TIME_OUT;<BR>&nbsp;&nbsp;private 
ManualResetEvent m_eventDone;<BR>&nbsp;&nbsp;private HttpWebRequest 
m_httpReq;<BR>&nbsp;&nbsp;private byte[] m_btRead;<BR>&nbsp;&nbsp;private 
StringBuilder m_sbResp;<BR>&nbsp;&nbsp;private string 
m_sPost;<BR>&nbsp;&nbsp;private Stream m_stResponse;<BR>&nbsp;&nbsp;private 
Decoder m_dec = Encoding.UTF8.GetDecoder();<BR>&nbsp;&nbsp;private string 
m_sResp;<BR>&nbsp;&nbsp;private bool m_bGotResponse = false;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><BR><FONT face=Arial size=2>&nbsp;&nbsp;public 
Connect()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;m_eventDone = new 
ManualResetEvent(false);<BR>&nbsp;&nbsp;&nbsp;m_btRead = new 
byte[BUFFER_SIZE];<BR>&nbsp;&nbsp;&nbsp;m_sbResp = new 
StringBuilder(String.Empty);<BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;public int 
HUBTimeOut<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;set { TIME_OUT = value 
*1000;}<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;public string 
strResponse<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;get { return 
m_sResp;}<BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;public bool 
GotResponse<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;get { return 
m_bGotResponse;}<BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;public string postToURL(string sURL, 
string sData, string ProxyAddress, <BR>&nbsp;&nbsp;&nbsp;string ProxyUsername, 
string ProxyPassword)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;m_httpReq = 
(HttpWebRequest)WebRequest.Create(sURL);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>&nbsp;&nbsp;&nbsp;/**<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * If you are 
behind a firewall and you do not have your browser proxy 
setup<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; * you need to use the following proxy 
creation code. */</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;if ((ProxyAddress != null) 
&amp;&amp; (ProxyAddress != 
System.String.Empty))<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// 
Create a proxy object.<BR>&nbsp;&nbsp;&nbsp;&nbsp;WebProxy myProxy = new 
WebProxy();</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;// Associate a new Uri 
object to the _wProxy object, using the proxy 
address<BR>&nbsp;&nbsp;&nbsp;&nbsp;// selected by the 
user.<BR>&nbsp;&nbsp;&nbsp;&nbsp;myProxy.Address = new 
Uri(ProxyAddress);<BR>&nbsp;&nbsp;&nbsp;&nbsp;if (((ProxyUsername != null) 
&amp;&amp; (ProxyUsername != System.String.Empty)) 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;&amp; ((ProxyPassword != null) &amp;&amp; 
(ProxyPassword != 
System.String.Empty)))<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;myProxy.Credentials=new 
NetworkCredential(ProxyUsername, 
ProxyPassword);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;// Finally, initialize the Web request object proxy 
property with the _wProxy<BR>&nbsp;&nbsp;&nbsp;&nbsp;// 
object.<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_httpReq.Proxy=myProxy;<BR>&nbsp;&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;m_httpReq.Method = 
"POST";<BR>&nbsp;&nbsp;&nbsp;m_httpReq.ContentType = 
"application/x-www-form-urlencoded";<BR>&nbsp;&nbsp;&nbsp;m_httpReq.ContentLength 
= sData.Length;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;Stream st = 
m_httpReq.GetRequestStream();</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;StreamWriter stw = new 
StreamWriter(st);<BR>&nbsp;&nbsp;&nbsp;stw.Write(sData);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>&nbsp;&nbsp;&nbsp;stw.Flush();<BR>&nbsp;&nbsp;&nbsp;stw.Close();</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;IAsyncResult ar = (IAsyncResult) 
m_httpReq.BeginGetResponse(<BR>&nbsp;&nbsp;&nbsp;&nbsp;new 
AsyncCallback(callback), this);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;//hold until we are done 
reading<BR>&nbsp;&nbsp;&nbsp;//put a timeout here too<BR>&nbsp;&nbsp;&nbsp;if 
((TIME_OUT == 0))<BR>&nbsp;&nbsp;&nbsp;&nbsp;TIME_OUT = 
50000;<BR>&nbsp;&nbsp;&nbsp;m_bGotResponse = 
m_eventDone.WaitOne(TIME_OUT,false);<BR>&nbsp;&nbsp;&nbsp;m_sPost = 
sData;<BR>&nbsp;&nbsp;&nbsp;return m_sResp;<BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;public string 
getPostData()<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;return 
m_sPost;<BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;private void callback(IAsyncResult 
ar)<BR>&nbsp;&nbsp;{</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;HttpWebResponse httpResp = 
(HttpWebResponse)m_httpReq.EndGetResponse(ar);&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;//&nbsp; Start reading data from 
the response stream.<BR>&nbsp;&nbsp;&nbsp;m_stResponse = 
httpResp.GetResponseStream();</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT><BR><FONT face=Arial 
size=2>&nbsp;&nbsp;&nbsp;//&nbsp; Pass rs.BufferRead to BeginRead. Read data 
into rs.BufferRead<BR>&nbsp;&nbsp;&nbsp;IAsyncResult iarRead = m_stResponse 
.BeginRead(m_btRead, 0, <BR>&nbsp;&nbsp;&nbsp;&nbsp;BUFFER_SIZE, new 
AsyncCallback(readCallback), this); <BR>&nbsp;&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial 
size=2>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;private void readCallback(IAsyncResult 
asyncResult)<BR>&nbsp;&nbsp;{</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;// Read rs.BufferRead to verify 
that it contains data. <BR>&nbsp;&nbsp;&nbsp;int iRead = m_stResponse.EndRead( 
asyncResult );<BR>&nbsp;&nbsp;&nbsp;if (iRead &gt; 
0)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;// Prepare a Char array 
buffer for converting to Unicode.<BR>&nbsp;&nbsp;&nbsp;&nbsp;Char[] charBuffer = 
new Char[BUFFER_SIZE];<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;// Convert byte stream to Char array and then to 
String.<BR>&nbsp;&nbsp;&nbsp;&nbsp;// len contains the number of characters 
converted to Unicode.<BR>&nbsp;&nbsp;&nbsp;&nbsp;int iLen = 
m_dec.GetChars(m_btRead, 0, BUFFER_SIZE, charBuffer, 
0);<BR>&nbsp;&nbsp;&nbsp;&nbsp;String s = new String(charBuffer, 0, 
iLen);</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;// Append the recently read 
data to the 
stringbuilder<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_sbResp.Append(Encoding.ASCII.GetString(m_btRead, 
0, iRead));&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;&nbsp;// Continue reading data 
untilm_stResponse.EndRead returns -1.<BR>&nbsp;&nbsp;&nbsp;&nbsp;IAsyncResult ar 
= m_stResponse.BeginRead( m_btRead, 0, BUFFER_SIZE, 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;new AsyncCallback(readCallback), 
this);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;else<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(m_btRead.Length&gt;0)<BR>&nbsp;&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//set 
our response 
string&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;m_sResp = 
m_sbResp.ToString();<BR>&nbsp;&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp;// 
Close down the response 
stream.<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_stResponse.Close();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;&nbsp;// Set the ManualResetEvent so the main thread can 
exit.<BR>&nbsp;&nbsp;&nbsp;&nbsp;m_eventDone.Set();&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;}&nbsp;&nbsp;&nbsp; 
</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;}</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2></FONT><BR><FONT face=Arial size=2>&nbsp;/// 
&lt;summary&gt;<BR>&nbsp;/// Summary description for Class1.<BR>&nbsp;/// 
&lt;/summary&gt;<BR>&nbsp;<BR>&nbsp;class Class1<BR>&nbsp;{<BR>&nbsp;&nbsp;/// 
&lt;summary&gt;<BR>&nbsp;&nbsp;/// The main entry point for the 
application.<BR>&nbsp;&nbsp;/// 
&lt;/summary&gt;<BR>&nbsp;&nbsp;[STAThread]<BR>&nbsp;&nbsp;static void 
Main(string[] args)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;string result1 = 
"";<BR>&nbsp;&nbsp;&nbsp;Connect cn1 = new 
Connect();<BR>&nbsp;&nbsp;&nbsp;cn1.HUBTimeOut = 60;</FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;cn1.postToURL("</FONT><A 
href='https://sometestHTTPservice.com.au/OFXServlet","","http://myproxy:80/'><FONT 
face=Arial size=2>https://<SPAN 
class=016580606-02042004>sometestHTTPservice</SPAN>.com.au/OFXServlet","","http://<SPAN 
class=016580606-02042004>myproxy</SPAN>:80/</FONT></A><FONT face=Arial 
size=2>",<BR>&nbsp;&nbsp;&nbsp;&nbsp;"","");&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;if 
(cn1.GotResponse)<BR>&nbsp;&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;&nbsp;result1 = 
cn1.strResponse;<BR>&nbsp;&nbsp;&nbsp;&nbsp;Console.WriteLine(result1);<BR>&nbsp;&nbsp;&nbsp;}<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}<BR></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
<DIV><FONT><SPAN class=016580606-02042004><FONT face=Arial size=2>Output&nbsp;on 
windows [.NET Framework 1.1, Windows XP Pro]</FONT></SPAN></FONT></DIV>
<DIV><FONT><SPAN class=016580606-02042004></SPAN></FONT><FONT face=Arial 
size=2></FONT>&nbsp;</DIV><FONT><SPAN class=016580606-02042004><FONT face=Arial 
size=2>
<DIV><BR>&lt;OFX&gt;<BR>&lt;SIGNONMSGSRSV1&gt;<BR>&lt;SONRS&gt;<BR>&lt;STATUS&gt;<BR>&lt;CODE&gt;20007&lt;/CODE&gt;<BR>&lt;SEVERITY&gt;ERROR&lt;/SEVERITY&gt;<BR>&lt;MESSAGE&gt;DTDValidationError:XML_DOES_NOT_CONFORM_TO_DTD&lt;/MESSAGE&gt;<BR>&lt;/STATUS&gt;<BR>&lt;DTSERVER&gt;20040402055319&lt;/DTSERVER&gt;<BR>&lt;LANGUAGE&gt;ENG&lt;/LANGUAGE&gt;<BR>&lt;/SONRS&gt;<BR>&lt;/SIGNONMSGSRSV1&gt;<BR>&lt;/OFX&gt;</DIV>
<DIV>&nbsp;</DIV>
<DIV></FONT></SPAN>&nbsp;</DIV></FONT>
<DIV><FONT face=Arial size=2><SPAN class=016580606-02042004>Output on Debian 
[Tried with both Mono JIT compiler version 0.30.2 and Mono JIT compiler version 
0.29, Linux&nbsp; 2.4.23]</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=016580606-02042004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=016580606-02042004>&lt;HTML&gt;&lt;/HTML&gt;<BR></SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2><SPAN 
class=016580606-02042004></SPAN></FONT>&nbsp;</DIV>
<DIV><FONT face=Arial size=2><SPAN class=016580606-02042004>Please advise, as 
class status states these objects&nbsp;are finished, thanks in advance, regards, 
</SPAN></FONT></DIV>
<DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV><!-- Converted from text/rtf format --><SPAN 
lang=en-au><FONT face=Tahoma size=2>
<P class=MsoNormal style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none" 
align=left><FONT face=Arial><B><SPAN lang=EN-US 
style="mso-bidi-font-family: Arial; mso-ansi-language: EN-US">Kieren 
Drapala</SPAN></B></FONT></P>
<P class=MsoNormal 
style="MARGIN: 0cm 0cm 0pt; mso-layout-grid-align: none"><FONT 
face=Arial><B><SPAN lang=EN-US 
style="mso-bidi-font-family: Arial; mso-ansi-language: EN-US">Analyst / 
Programmer</SPAN></B></FONT></P></FONT></SPAN></BODY></HTML>

------_=_NextPart_001_01C4187E.5B1E39F0--