As a PHP programmer I’m used to using $_GET to retrieve the HTTP query string… and if I need the whole string, theres loads of ways to do it.
In ASP however, I can’t seem to get the query.
Here is the code for news.aspx (embedded in some HTML):
<% string URL = "http://www.example.com/rendernews.php?"+Request.Querystring; System.Net.WebClient wc = new System.Net.WebClient(); string data = wc.DownloadString(URL); Response.Output.Write(data); %>
I am fetching a PHP script’s output from a remote server, and this works perfectly without the Request.Querystring.
The issue is that I’m trying to get the full query string on the first line: Request.Querystring. I am getting an error “Object reference not set to an instance of an object” which basically means that Request.Querystring doesn’t exist.
Request.Url.Query if you want the raw querystring as a string.
This should work fine for you.
Write this code in the
Page_Load event of the page.
string ID = Request.QueryString["id"].ToString(); Response.Redirect("http://www.example.com/rendernews.php?id=" + ID);
Request.QueryString returns you a collection of Key/Value pairs representing the Query String. Not a String. Don’t think that would cause a Object Reference error though. The reason your getting that is because as Mauro pointed out in the comments. It’s QueryString and not Querystring.
<% string URL = Request.Url.AbsoluteUri System.Net.WebClient wc = new System.Net.WebClient(); string data = wc.DownloadString(URL); Response.Output.Write(data); %>
Same as your code but
Request.Url.AbsoluteUri will return the full path, including the query string.
Request.QueryString.ToString() to get full query string, like this:
string URL = "http://www.example.com/rendernews.php?"+Request.Querystring.ToString();
I have tested your example, and while Request.QueryString is not convertible to a string neither implicit nor explicit still the .ToString() method returns the correct result.
Further more when concatenating with a string using the “+” operator as in your example it will also return the correct result (because this behaves as if .ToString() was called).
As such there is nothing wrong with your code, and I would suggest that your issue was because of a typo in your code writing “Querystring” instead of “QueryString”.
And this makes more sense with your error message since if the problem is that QueryString is a collection and not a string it would have to give another error message.
just a moment ago, i came across with the same issue. and i resolve it in the following manner.
with reference to the this