Вопрос по c# – Как отправить URL-адрес со строками запроса в виде строки запроса

10

Я делаю перенаправление с одной страницы на другую, а другое перенаправление со второй страницы на третью. У меня есть информация с первой страницы, которая не используется на второй странице, но должна быть перенесена на третью страницу. Можно ли отправить URL третьей страницы с ее строками запроса в виде строки запроса на вторую страницу. Вот пример:

<code>Response.Redirect("MyURL1?redi=MyURL2?name=me&ID=123");
</code>

Моя проблема заключается в том, что URL, отправляемый в виде строки запроса, содержит две переменные строки запроса, поэтому как система узнает, что после & amp; вторая переменная второго URL, а не вторая переменная первого URL? Спасибо.

Рассматривали ли вы использование переменных сеанса для этого? V4Vendetta

Ваш Ответ

4   ответа
2

тправкой. В некоторых случаях это помогает, когда вам нужно отправить всевозможные специальные символы. Это не подходит для хороших строк отладки, но защищает ВСЕ, что вы отправляете, от смешения с любыми другими параметрами.

Просто имейте в виду, что другой стороне, которая выполняет синтаксический анализ строки запроса, также потребуется проанализировать Base64 для доступа к исходному вводу.

11

который вы передаете в качестве параметра в вашем URL перенаправления. Как это:

MyURL = "MyURL1?redi=" + Server.UrlEncode("MyURL2?name=me&ID=123");

Это создаст правильный URL без двойного "?" и '& amp;' персонажи:

MyURL1?redi=MyURL2%3fname%3dme%26ID%3d123

Смотрите MSDN:Метод HttpServerUtility.UrlEncode

Чтобы извлечь ваш URL перенаправления из этого закодированного URL, вы должны использоватьHttpServerUtility.UrlDecode чтобы превратить его в правильный URL снова.

Error: User Rate Limit Exceededbytes.com/topic/asp-net/answers/…
Error: User Rate Limit ExceededHttpServerUtility.UrlDecodeError: User Rate Limit ExceededHttpContext.Current.Server.UrlDecodeError: User Rate Limit ExceededServer.UrlDecodeError: User Rate Limit ExceededHttpUtility.UrlDecode.
1

MyURL1?redi=MyURL2&name=me&ID=123

Проверьте:http://en.wikipedia.org/wiki/Query_string

Вы должны иметь один? знак и все параметры, объединенные с & amp ;. Если значения параметров содержат специальные символы, простоUrlEncode их.

Error: User Rate Limit Exceeded
Error: User Rate Limit Exceeded Dov Miller
Error: User Rate Limit Exceeded
0
using System.IO;
using System.Net;

static void sendParam()
{

    // Initialise new WebClient object to send request
    var client = new WebClient();

    // Add the QueryString parameters as Name Value Collections
    // that need to go with the HTTP request, the data being sent
    client.QueryString.Add("id", "1");
    client.QueryString.Add("author", "Amin Malakoti Khah");
    client.QueryString.Add("tag", "Programming");

    // Prepare the URL to send the request to
    string url = "http://026sms.ir/getparam.aspx";

    // Send the request and read the response
    var stream = client.OpenRead(url);
    var reader = new StreamReader(stream);
    var response = reader.ReadToEnd().Trim();

    // Clean up the stream and HTTP connection
    stream.Close();
    reader.Close();
}

Похожие вопросы