Кодировка URL при отправке get запроса
Всем привет!
Сегодня столкнулся с такой проблемой:
Я формирую URL для GET запроса и отправляю GET запрос. URL генерируется правильно, но отправляется, как я понял, не правильно. Я задебажил получаемый URL, он был правильный, но после того, как я вставил в адресную строку браузера из такого запроса: http://localhost:61513/zertixapi/api/auth&admin&adminloh123@123sq
запрос превращается в такой:
http://localhost:61513/zertixapi/api/auth&admin%E2%80%8B&adminloh123@123sq%E2%80%8B и соответственно сервер выдаёт неправильный результат
Сталкивался ли кто-нибудь с таким и как это фиксить?
Вот код, как я отправляю запрос:
string sURL;
sURL = base_url + "auth&" + _login.text.Replace(" ", "") + "&" + _pass.text.Replace(" ", "");
WebRequest wrGETURL;
wrGETURL = WebRequest.Create(sURL);
WebProxy myProxy = new WebProxy("myproxy", 80);
myProxy.BypassProxyOnLocal = true;
wrGETURL.Proxy = WebProxy.GetDefaultProxy();
Stream objStream;
objStream = wrGETURL.GetResponse().GetResponseStream();
StreamReader objReader = new StreamReader(objStream);
string sLine = "";
int i = 0;
while (sLine != null)
{
i++;
sLine = objReader.ReadLine();
}
P.S С прямой ссылкой работает
РЕШЕНИЕ:
У меня был установлен TextMeshPro (TMP), и из него я брал текст, и видимо каким-то магическим образом, он добавлял свои знаки. Вообщем установил Text и всё норм)
Ответы (1 шт):
для генерации урла:
var uriBuilder = new UriBuilder(Request.Url.AbsoluteUri);
var paramValues = HttpUtility.ParseQueryString(uriBuilder.Query);
paramValues.Add("param1", "value1");
paramValues.Add("param2", "value2");
uriBuilder.Query = paramValues.ToString();
//твой результат
var urlWithParams = uriBuilder.Uri;
для доставания из урла значения параметра:
Uri myUri = new Uri("http://www.example.com?param1=good¶m2=bad");
string param1 = HttpUtility.ParseQueryString(myUri.Query).Get("param1");
оба кода найдены по запросу "c# url set with parameters"