C# PostAsync正在删除+&引用;性格
我需要将表单数据发送到服务器,但我遇到了一个问题C# PostAsync正在删除+&引用;性格,c#,C#,我需要将表单数据发送到服务器,但我遇到了一个问题 HtmlDocument scraper = new HtmlDocument(); string response = await client.GetStringAsync("hidden"); scraper.LoadHtml(response); string gameToken = scraper.DocumentNod
HtmlDocument scraper = new HtmlDocument();
string response = await client.GetStringAsync("hidden");
scraper.LoadHtml(response);
string gameToken = scraper.DocumentNode.SelectSingleNode("/html/body/div/div[1]/form/input[2]").Attributes["value"].Value.Replace(""", @"""");
string sessionToken = scraper.DocumentNode.SelectSingleNode("/html/body/div/div[1]/form/input[1]").Attributes["value"].Value;
Console.WriteLine(gameToken);
string postData = $"fc-game[session_token]={sessionToken}&";
postData += $"fc-game[data]={gameToken}";
var content = new StringContent(postData, Encoding.UTF8, "application/x-www-form-urlencoded");
var result = await client.PostAsync("https://httpbin.org/anything", content);
string resultString = await result.Content.ReadAsStringAsync();
Console.WriteLine(resultString);
第二个请求是问题所在。
如果转到此pastbin链接,您将看到一个字符串和来自https://httpbin.org/anything
。
如果查看数据,您会发现+
字符以某种方式被删除,导致请求失败
请帮帮我 如果不使用
HttpUtility.UrlEncode
,响应将是来自+
=>空间的误解,您可以使用下面的代码再次测试
Console.WriteLine(HttpUtility.UrlEncode("+")); //%2b
Console.WriteLine(HttpUtility.UrlEncode(" ")); //+
如果不使用HttpUtility.UrlEncode
,则响应可能是来自+
=>空间的误解,您可以使用以下命令再次测试
Console.WriteLine(HttpUtility.UrlEncode("+")); //%2b
Console.WriteLine(HttpUtility.UrlEncode(" ")); //+
您是否尝试过HttpUtility.UrlEncode(sessionToken)
?问题中没有显示+
,因此我们无法真正评估此删除是否正确。您能显示我们要查看的实际URL/等吗?但是:+
是个奇怪的词,因为它可能意味着“空间”;如果需要文本+
(这就是为什么标记是https://stackoverflow.com/questions/tagged/c%2B%2B
)是的,很有效%2B
谢谢,如果你回答了,我会接受。如果你试过HttpUtility.UrlEncode(sessionToken)
还没有?问题中没有显示+
,因此我们无法真正评估此删除是否正确。您能显示我们要查看的实际URL/等吗?但是:+
是个奇怪的词,因为它可能意味着“空间”;如果需要文本+
(这就是为什么标记是https://stackoverflow.com/questions/tagged/c%2B%2B
)是的,这很有效%2B
谢谢你的回答,我会接受的