Гость
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как правильно делать UrlEncode? / 13 сообщений из 13, страница 1 из 1
04.06.2020, 15:11
    #39966159
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
в документации написано можно весь урл
https://docs.microsoft.com/ru-ru/dotnet/api/system.web.httputility.urlencode?view=netcore-3.1

Код: c#
1.
2.
3.
4.
5.
6.
7.
8.
9.
String url = HttpUtility.UrlEncode("https://www.google.ru/search?newwindow=1&client=opera");
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;           
request.Method = "POST";
request.Timeout = 5 * 1000;

HttpWebResponse response = request.GetResponse() as HttpWebResponse;
string result = string.Empty;
using (StreamReader reader = new StreamReader(response.GetResponseStream()))
	result = reader.ReadToEnd();



но получаю ошибку:
Недопустимый URI: Невозможно определить формат URI.
Описание: Необработанное исключение при выполнении текущего веб-запроса. Изучите трассировку стека для получения дополнительных сведений о данной ошибке и о вызвавшем ее фрагменте кода.
Сведения об исключении: System.UriFormatException: Недопустимый URI: Невозможно определить формат URI.

получается нужно кодировать вот эту строку
?newwindow=1&client=opera
вместе с вопросительным знаком
так?
...
Рейтинг: 0 / 0
04.06.2020, 15:32
    #39966164
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
listtoview
получается нужно кодировать вот эту строку
?newwindow=1&client=opera
не в ту сторону копаешь
тебе не надо кодировать URL
тебе нужно что-то типа QueryParametersBuilder (забыл, как именно класс называется, щас попробую найти)
...
Рейтинг: 0 / 0
04.06.2020, 15:37
    #39966167
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
Код: c#
1.
2.
3.
4.
5.
6.
7.
var builder = new UriBuilder("http://example.com");
builder.Port = -1;
var query = HttpUtility.ParseQueryString(builder.Query);
query["foo"] = "bar<>&-baz";
query["bar"] = "bazinga";
builder.Query = query.ToString();
string url = builder.ToString();
...
Рейтинг: 0 / 0
04.06.2020, 15:40
    #39966168
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
Хотя.... я может тебе не на тот вопрос ответил. Расскажи, зачем ты пытаешься закодировать URL
...
Рейтинг: 0 / 0
04.06.2020, 15:47
    #39966172
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
Shocker.Pro
Хотя.... я может тебе не на тот вопрос ответил. Расскажи, зачем ты пытаешься закодировать URL

ну как, стандартный энкод з-й параметров
я использую REST API программы мираполис
у них написано надо энкодить в документации
...
Рейтинг: 0 / 0
04.06.2020, 15:48
    #39966173
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
Код: c#
1.
var url = Uri.EscapeUriString("https://www.google.ru/search?newwindow=1&client=opera");



Либо через Uri.EscapeDataString() ескейпить каждый отдельный параметер и из них собирать уже полный урл (это на тот случай, если в самих параметрах есть '&', '?', или '='), как-то так.
...
Рейтинг: 0 / 0
04.06.2020, 15:48
    #39966174
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
стоп, у меня POST
нафиг мне кодировать

но вопрос все равно открыт, если был бы GET :)
...
Рейтинг: 0 / 0
04.06.2020, 15:51
    #39966177
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
listtoview
но вопрос все равно открыт
вопрос озвучь.
Зачем тебе кодировать, когда у тебя есть готовый урл?
...
Рейтинг: 0 / 0
04.06.2020, 15:52
    #39966178
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
listtoview
у них написано надо энкодить в документации

Энкодить что? Урл? Тело запроса?
...
Рейтинг: 0 / 0
04.06.2020, 15:53
    #39966182
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
fkthat
(это на тот случай, если в самих параметрах есть '&', '?', или '='),
выше пример, ничего не надо кодировать руками, всё уже придумано до вас
...
Рейтинг: 0 / 0
04.06.2020, 16:02
    #39966188
fkthat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
Shocker.Pro
fkthat
(это на тот случай, если в самих параметрах есть '&', '?', или '='),
выше пример, ничего не надо кодировать руками, всё уже придумано до вас

Да я так-то ничего не придумываю. Просто HttpUtility это какой-то пришелец из System.Web, хоть и входит в нетстендард. Мне оно просто из-за этого не нравится, поэтому привык пользоваться Uri.EscapeXXX(...).
...
Рейтинг: 0 / 0
04.06.2020, 16:29
    #39966198
listtoview
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
вообщем кодировать нужно сами з-я
...
Рейтинг: 0 / 0
05.06.2020, 01:08
    #39966289
hVostt
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Как правильно делать UrlEncode?
listtoview
Код: c#
1.
2.
String url = HttpUtility.UrlEncode("https://www.google.ru/search?newwindow=1&client=opera");
HttpWebRequest request = WebRequest.Create(url) as HttpWebRequest;   



Это что за дичь? ))
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Как правильно делать UrlEncode? / 13 сообщений из 13, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]