I am trying to modifiy a vb.net 2005 in production Clinician software 
suite.  Prior to a recent update by the state ran insurance site this 
program successfully used a screen scrape to log into the site using the 
users login information and would upload, download etc to the site using 
HTTPWebRequest.  Most of the work was done using the HTTPWebRequest and the 
HTTPWebResponse.  The download had needed to use SOAP, but all of this was 
working prior to my employment for several years.

It was recommended to download Firebug to 'see' what is happening, and it 
was totally cool, but I had only ever used Firebug in school to modify 
HTML.  I am hoping someone could help me understand more about how Firebug 
can show me what the page is expecting as it's post and how to possible set 
up my httpwebrequest accordingly. thank you

Last week the state site changed significantly and the state agency is not 
really working with me so I am on my own. This is in the body of the page 
when I look at source. The new site is ASP.Net/IIS with DotNetNuke and lots 
of JavaScript and redirects.

    <form method="post" 
action="/hcp/Default.aspx?alias=www.ohcaprovider.com/hcp/provider"  
onsubmit="javascript:return WebForm_OnSubmit();" id="Form" 
enctype="multipart/form-data" autocomplete="off">

The first difference I noticed is that the first page is doing a PostBack 
to itself we used to post the parameters on the end of the next pages 
Url.   

    function __doPostBack(eventTarget, eventArgument) {
    if (!theForm.onsubmit || (theForm.onsubmit() != false)) {
        theForm.__EVENTTARGET.value = eventTarget;
        theForm.__EVENTARGUMENT.value = eventArgument;
        theForm.submit();
    }

Also the first page only wants a login name and no matter what you put in 
manually will proceed to the next page (as this is a post back I am 
assuming it has a redirect going on too).  However if I set up the 
HTTPWebRequest it always gives me a Status 200 and the response is the 
default page (which is also the first page) of the web portal.

I have really researched and hunted to find answers.  I am a new person to 
posting to forums, and I really welcome and need some help.  

I have installed firebug and noticed that when I post manually it shows me 
in the post what appears to be a design for a multipart/form data.  I have 
attempted to copy and put on HTTPWebRequest, but It is not giving me 
anything but a status 200 and the response is the default page again.  
Below I will try to piece the code together as it is in different OOP 
pieces.  

Here is my attempt to modify what worked in the past for the new web site:
Basically I set up Httpwebrequest, add headers, get page, scrape for 
__ViewState, set up the multipart/form, set up post httpwebrequest, post 
and then I don't get what I expect.  I'm not sure what to expect or if 
one(or more) pieces of this code is not working right. Thank you again for 
any help.

        Dim lsViewState As String = "__VIEWSTATE"" value="""
        Try
            'Section of code to get the upload form GET
            chwrequest = 
WebRequest.Create("https://www.ohcaprovider.com/hcp/Default.aspx?alias=www.ohcaprovider.com/hcp/provider";)
            chwrRequest.Method = "GET"
            chwrRequest.KeepAlive = True
            chwrRequest.CookieContainer = cckcCookieContainer
            ' Configure the web request to work with a proxy, like ACT
            If pobjProxy Is Nothing Then
               pobjProxy = System.Net.WebRequest.DefaultWebProxy
               pobjProxy.Credentials = 
System.Net.CredentialCache.DefaultCredentials
            End If
            chwrRequest.Proxy = pobjProxy
            
            'ADD Headers
            chwrRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; 
rv:26.0) Gecko/20100101 Firefox/26.0"  
            chwrRequest.Accept = 
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            chwrRequest.Headers.Add("Accept-Language", "en")
            chwrRequest.Headers.Add("Accept-Charset", "windows-1252, utf-8, 
utf-16, iso-8859-1;q=0.6, *;q=0.1")
            chwrRequest.KeepAlive = True
            
            'Get Page
            chrsResponse = chwrRequest.GetResponse()
            cstmStream = chrsResponse.GetResponseStream()
            lsResp = CSubmitterUtils.GetStreamContent(cstmStream)

            cstmStream.Close()
            chrsResponse.Close()
            CSubmitterUtils.WriteFileContent(psSaveAs, lsResp)  **writes to 
file for debug purposes

            'Store cookie Date
            fsCookieData = cckcCookieContainer.GetCookieHeader(New 
Uri(OHCA_WEB_NEW))
            
            'Section of code to do fill form and upload file SCRAPE for 
viewSTATE
            Dim lnViewStateURLIndex As Integer = csResp.IndexOf(lsViewState)

            If lnViewStateURLIndex < 0 Then
                WriteLog("ViewState not found")
                lbReturn = False
            End If

            Dim lnStartIndex As Integer = lnViewStateURLIndex + 
lsViewState.Length
            Dim lnEqualIndex As Integer = csResp.IndexOf("=", lnStartIndex)
            Dim lsViewStateContents As String = 
csResp.Substring(lnStartIndex, lnEqualIndex - lnStartIndex)

            'Setup to POST
            chwrequest = WebRequest.Create(psUrl)
            chwrRequest.Method = "POST"
            chwrRequest.KeepAlive = True
            chwrRequest.CookieContainer = cckcCookieContainer
            ' Configure the web request to work with a proxy, like ACT
            If pobjProxy Is Nothing Then
               pobjProxy = System.Net.WebRequest.DefaultWebProxy
               pobjProxy.Credentials = 
System.Net.CredentialCache.DefaultCredentials
            End If
            chwrRequest.Proxy = pobjProxy
 
            'ADD Headers
            chwrRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; 
rv:26.0) Gecko/20100101 Firefox/26.0"  
            chwrRequest.Accept = 
"text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
            chwrRequest.Headers.Add("Accept-Language", "en")
            chwrRequest.Headers.Add("Accept-Charset", "windows-1252, utf-8, 
utf-16, iso-8859-1;q=0.6, *;q=0.1")
            chwrRequest.KeepAlive = True
            chwrRequest.AllowAutoRedirect = False

            'Setup multipart/form
            SetupLogonFileSubmit(lsViewStateContents)
            Dim lmpBuffer As MultiPartBuffer
            Dim lsContentType As String = "Content-Disposition: form-data; 
name="
            dim csBoundary = "------------------------------" & 
DateTime.Now.Ticks.ToString("x")

            lmpBuffer.ContentTypeHeader = "multipart/form-data; boundary=" 
& csBoundary.Substring(2)
            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + "__EVENTTARGET")  
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine("")

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + "__EVENTARGUMENT")  
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine("")

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType +  "__LASTFOCUS")
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine("")

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + "__VIEWSTATE")
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine(lsViewStateContents + "=")

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + "__VIEWSTATEENCRYPTED")
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine("")

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + 
"dnn$ctr1842$Login$UserIdCmnTextBox$Control")
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine(psLogName)

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + 
"dnn$ctr1842$Login$LoginCmnButton")
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine("Log In")

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + "ScrollTop")
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine("")

            lmpBuffer.WriteLine(csBoundary)
            lmpBuffer.WriteLine(lsContentType + "__dnnVariable")
            lmpBuffer.WriteLine()
            lmpBuffer.WriteLine("{""__scdoff"":""1""}")

            lmpBuffer.CloseBuffer()

            Dim lsMpContent As String = lmpBuffer.ToString()
            chwrRequest.ContentLength = lsMpContent.Length
            chwrRequest.ContentType = lmpBuffer.HttpContentTypeHeader

            Dim lbyBytesBuff As Byte()
            lbyBytesBuff = Encoding.UTF8.GetBytes(lsMpContent)

            cstmStream = chwrRequest.GetRequestStream()
            cstmStream.Write(lbyBytesBuff, 0, lbyBytesBuff.Length)
            cstmStream.Close()

           'Get the Response 
            chrsResponse = chwrRequest.GetResponse()
           'Put it in a stream
            cstmStream = chrsResponse.GetResponseStream()
            
            If chrsResponse.StatusCode = HttpStatusCode.OK Or 
chrsResponse.StatusCode = HttpStatusCode.Found Then
                lsResp = CSubmitterUtils.GetStreamContent(cstmStream)
                cstmStream.Close()
            Else
                lsResp = ""
            End If

            chrsResponse.Close()
            CSubmitterUtils.WriteFileContent(psSaveAs, lsResp) **Previously 
this was then used to move on to the next page for scraping/posting


-- 
You received this message because you are subscribed to the Google Groups 
"Firebug" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/firebug.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/firebug/1078c5eb-ca10-44c1-a8c7-a01e1d82d3f6%40googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to