如何使用 System.Net.HttpWebRequest 发送带有数据的请求

How to send a request with data using System.Net.HttpWebRequest

我想使用 System.Net.WebRequest 发送简单的 GET 请求。但是当我尝试发送包含 "Space" 字符的 URL-s 时遇到问题。 我做什么:

string url = "https://example.com/search?text=some words&page=8";
var webRequest = System.Net.WebRequest.Create(link) as HttpWebRequest;

如果我尝试使用此代码,则
webRequest.Address == "https://example.com/search?&text=some words&page=8" (#1)

我可以为 UrlEncoded space 手动添加“%20”,但 "WebRequest.Create" 对其进行了解码,我又得到了 (#1)。我怎样才能做对?

P.S。对不起我的英语。

尝试使用加号 (+) 而不是 space。同时删除第一个和号 (&);它仅用于非主要参数。如

var url = "https://example.com/search?text=some+words&page=8";

你应该使参数值"url-friendly"。为此,您必须使用 HttpUtility.UrlEncode() "url-encode" 个值。这不仅修复了空格,还修复了许多其他危险 "quirks":

string val1 = "some words"; 
string val2 = "a <very bad> value & with specials!";
string url = "https://example.com/search?text=" + HttpUtility.UrlEncode(val1) + "&comment=" + HttpUtility.UrlEncode(val2);