Вам необходимо url-кодировать параметры. Вот что означает строка req.ContentType = "application/x-www-form-urlencoded";
. Это вы даете обещание HTTP-серверу (в данном случае это Paypal's www.paypal.com). Обещание заключается в том, что любые отправленные вами данные будут закодированы в формате URL. Это означает, что вы должны избегать любых специальных символов. Сюда входят такие символы, как ?
и &
и %
, а также такие символы, как ü
.
Чтобы URL-кодировать имя, вам нужно создать запрос с URL-кодированным именем:
string request = "cmd=_notify-validate&......."; // don't include "last_name="
string name = "Montalvo Agüera";
request += "last_name=" + Server.UrlEncode(name);