Want to win a PS4? Go Premium and enter to win our High-Tech Treats giveaway. Enter to Win

x
?
Solved

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

Posted on 2016-08-27
7
Medium Priority
?
86 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
[X]
Welcome to Experts Exchange

Add your voice to the tech community where 5M+ people just like you are talking about what matters.

  • Help others & share knowledge
  • Earn cash & points
  • Learn & ask questions
  • 4
  • 3
7 Comments
 
LVL 35

Accepted Solution

by:
Robert Schutt earned 2000 total points
ID: 41773132
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
ID: 41773858
Thanks for your help, I will give this a try when I am in the office.
0
 

Author Comment

by:Member_2_7964962
ID: 41780188
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
Get your Disaster Recovery as a Service basics

Disaster Recovery as a Service is one go-to solution that revolutionizes DR planning. Implementing DRaaS could be an efficient process, easily accessible to non-DR experts. Learn about monitoring, testing, executing failovers and failbacks to ensure a "healthy" DR environment.

 
LVL 35

Expert Comment

by:Robert Schutt
ID: 41780330
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
ID: 41780340
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
ID: 41780372
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
ID: 41780392
Thank you, agreed.
0

Featured Post

What is SQL Server and how does it work?

The purpose of this paper is to provide you background on SQL Server. It’s your self-study guide for learning fundamentals. It includes both the history of SQL and its technical basics. Concepts and definitions will form the solid foundation of your future DBA expertise.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
Calculating holidays and working days is a function that is often needed yet it is not one found within the Framework. This article presents one approach to building a working-day calculator for use in .NET.
Is your data getting by on basic protection measures? In today’s climate of debilitating malware and ransomware—like WannaCry—that may not be enough. You need to establish more than basics, like a recovery plan that protects both data and endpoints.…
This lesson discusses how to use a Mainform + Subforms in Microsoft Access to find and enter data for payments on orders. The sample data comes from a custom shop that builds and sells movable storage structures that are delivered to your property. …

636 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