programing

C# ASP.NET에서 전체 쿼리 문자열 가져오기

showcode 2023. 6. 9. 22:11
반응형

C# ASP.NET에서 전체 쿼리 문자열 가져오기

PHP 프로그래머로서 저는 $_GET을 사용하여 HTTP 쿼리 문자열을 검색하는 데 익숙합니다.그리고 만약 내가 전체 끈이 필요하다면, 그것을 할 수 있는 많은 방법들이 있습니다.

하지만 ASP에서는 쿼리를 받을 수 없는 것 같습니다.

다음은 news.aspx(일부 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);
%>

원격 서버에서 PHP 스크립트의 출력을 가져오는 중이며, 요청 없이도 완벽하게 작동합니다.쿼리 문자열.

문제는 첫 번째 줄에 있는 전체 쿼리 문자열인 요청을 가져오려고 한다는 것입니다.쿼리 문자열.기본적으로 요청을 의미하는 "Object reference not set to object instance" 오류가 발생합니다.쿼리 문자열이 없습니다.

여기에 무슨 문제가 있는지 아십니까?index.aspx가 http://test.com/news.aspx?id=2 처럼 호출될 때 어떻게 그 쿼리 문자열을 가져올 수 있습니까? 내 스크립트는 http://www.example.com/rendernews.php?id=2 를 가져옵니다.

원시 쿼리 문자열을 문자열로 사용하려면 시도하십시오.

이것은 당신에게 잘 될 것입니다.

에 이 코드를 기록합니다.Page_Load페이지의 이벤트입니다.

string ID = Request.QueryString["id"].ToString();
Response.Redirect("http://www.example.com/rendernews.php?id=" + ID);

Request.QueryString쿼리 문자열을 나타내는 키/값 쌍의 컬렉션을 반환합니다.문자열이 아닙니다.그러나 개체 참조 오류가 발생할 것이라고는 생각하지 마십시오.당신이 그것을 얻는 이유는 마우로가 댓글에서 지적했듯이.QueryString이지 QueryString이 아닙니다.

시도:

Request.QueryString.ToString();

또는

<%                                 
    string URL = Request.Url.AbsoluteUri 
    System.Net.WebClient wc = new System.Net.WebClient();
    string data = wc.DownloadString(URL);
    Response.Output.Write(data);
%>

코드와 동일하지만 쿼리 문자열을 포함한 전체 경로를 반환합니다.

그냥 사용하기Request.QueryString.ToString()다음과 같은 전체 쿼리 문자열을 가져오려면:

string URL = "http://www.example.com/rendernews.php?"+Request.Querystring.ToString();

요청하는 동안 당신의 예를 테스트했습니다.QueryString은 여전히 암시적이거나 명시적인 문자열로 변환할 수 없습니다.ToString() 메서드가 올바른 결과를 반환합니다.

또한 예제에서와 같이 "+" 연산자를 사용하여 문자열과 연결하면 올바른 결과도 반환됩니다(이는 와 같이 동작하므로).ToString()이 호출되었습니다.

따라서 당신의 코드에는 아무런 문제가 없으며, 당신의 문제는 "QueryString"이 아닌 "QueryString"이라고 쓰는 코드의 오타 때문이라고 생각합니다.

또한 QueryString이 문자열이 아닌 컬렉션이라는 문제가 발생하면 다른 오류 메시지를 제공해야 하므로 오류 메시지에 더 적합합니다.

조금 전에, 저는 같은 문제를 발견했습니다.그리고 저는 다음과 같은 방법으로 그것을 해결합니다.

Response.Redirect("../index.aspx?Name="+this.textName.Text+"&LastName="+this.textlName.Text);

이것과 관련하여

언급URL : https://stackoverflow.com/questions/1879773/get-full-query-string-in-c-sharp-asp-net

반응형