Solved

Receive name of variable not variable content when using Request.QueryString["var1"]

Posted on 2016-08-27
7
51 Views
Last Modified: 2016-09-01
Here is a sample of the Asp.net Webform that is requesting the variable


.NET Webform

 protected void Page_Load(object sender, EventArgs e)
        {
            var var1 = Request.QueryString["var1"];
 

            string testthree = var1

Open in new window


'''''''''''''''''''''''''
Here is a copy of the VBA code that is sending the variable


VBA Macro

''Dim oXMLDoc, oXMLHTTP

     Dim strEnvelope As String

       Dim response As String

       Dim emailvalues As String

      Set oXMLHTTP = CreateObject("Microsoft.XMLHTTP")

    Set oXMLDoc = CreateObject("MSXML2.DOMDocument")
       

    strEnvelope = "test"  
     

   emailvalues = ("var1=strEnvelope")
    
 ''Call oXMLHTTP.Open("POST", "http://server/WebForm1.aspx?var1=strEnvelope", False)

   Call oXMLHTTP.Open("POST", "http://server/WebForm1.aspx?var1=strEnvelope", False)     
   Call oXMLHTTP.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")

   Call oXMLHTTP.Send(strEnvelope)

   Dim szResponse: szResponse = oXMLHTTP.responseText

    Call oXMLDoc.LoadXML(szResponse)

     If (oXMLDoc.parseError.ErrorCode <> 0) Then

       'call msgbox("ERROR")

        'response = oXMLHTTP.responseText&" "&oXMLDoc.parseError.reason

        'call msgbox(oXMLDoc.parseError.reason)

    Else

        'response = oXMLDoc.getElementsByTagName("string")(0).childNodes(0).text

        MsgBox (oXMLHTTP.Status)

    End If

MsgBox (oXMLHTTP.Status)

Open in new window

0
Comment
Question by:Member_2_7964962
  • 4
  • 3
7 Comments
 
LVL 35

Accepted Solution

by:
Robert Schutt earned 500 total points
Comment Utility
You're sending a literal value to the page which is the variable name: "http://server/WebForm1.aspx?var1=strEnvelope"

Simplest solution (for testing at least) is to change this to: "http://server/WebForm1.aspx?var1=" & strEnvelope

When you get this to work, you will want to consider URL-encoding the variable in case the actual value contains any special characters not allowed in a URL.

Note by the way that you are using a POST method but are sending this variable in the query-string which is normally done for a GET request. It's possible to mix them as you do but maybe you need to change it, nowadays on a lot of web servers there is a severe restriction on query-string length for security reasons.
1
 

Author Comment

by:Member_2_7964962
Comment Utility
Thanks for your help, I will give this a try when I am in the office.
0
 

Author Comment

by:Member_2_7964962
Comment Utility
What would be the best way to pass multiple parameters in the string below? For example, var2, and var3

http://server/WebForm1.aspx?var1=" & strEnvelope
0
IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

 
LVL 35

Expert Comment

by:Robert Schutt
Comment Utility
Something like this:

... "http://server/WebForm1.aspx?var1=" & strEnvelope & "&var2=" & strVar2 & "&var3=" & strVar3

Assuming you have variables strVar2 and strVar3 filled with strings like you have strEnvelope.

Note that & is used both as a seperator in the querystring (after the initial question mark) as well as an operator in the VBA language to concatenate strings.

It also may become more important now you are adding extra variables to think about the other 2 remarks in my first comment.
1
 

Author Comment

by:Member_2_7964962
Comment Utility
For sure, but not sure how to accomplish this yet. In regards to the remarks in your first comment, would this make the whole process that I am trying to accomplish easier. Some of the values that I am passing our Outlook email items such as senders name, attachments etc.

 I am passing the parameters to the following Response.Write link.

The Class is identified below the Response.Write code below. Are you familiar with passing several parameters using Response.Write, and receiving them using HttpPost? See Example below.


             Response.Write(Class1.HttpPost("http://172.23.0.106:7722/WebService1.asmx?op=MyMethod", test));


     public class Class1
     {
   

    public static string Errors { get; set; }

     public static string HttpPost(string URI, string Parameters)

     {
0
 
LVL 35

Expert Comment

by:Robert Schutt
Comment Utility
No, it wouldn't make it easier, but it would make it safer and more robust.

The question in the second part of that last post makes little sense to me. You should probably gather some more info and ask a new (related) question. Your audience here will be very limited (possibly just me) now that the question is closed.
0
 

Author Comment

by:Member_2_7964962
Comment Utility
Thank you, agreed.
0

Featured Post

IT, Stop Being Called Into Every Meeting

Highfive is so simple that setting up every meeting room takes just minutes and every employee will be able to start or join a call from any room with ease. Never be called into a meeting just to get it started again. This is how video conferencing should work!

Join & Write a Comment

Just a quick little trick I learned recently.  Now that I'm using jQuery with abandon in my asp.net applications, I have grown tired of the following syntax:      (CODE) I suppose it just offends my sense of decency to put inline VBScript on a…
Many of us here at EE write code. Many of us write exceptional code; just as many of us write exception-prone code. As we all should know, exceptions are a mechanism for handling errors which are typically out of our control. From database errors, t…
This demo shows you how to set up the containerized NetScaler CPX with NetScaler Management and Analytics System in a non-routable Mesos/Marathon environment for use with Micro-Services applications.
This video shows how to remove a single email address from the Outlook 2010 Auto Suggestion memory. NOTE: For Outlook 2016 and 2013 perform the exact same steps. Open a new email: Click the New email button in Outlook. Start typing the address: …

763 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question

Need Help in Real-Time?

Connect with top rated Experts

9 Experts available now in Live!

Get 1:1 Help Now