gpt4 book ai didi

c# - 使用 C# 客户端发送 POST 变量时出现问题

转载 作者:太空宇宙 更新时间:2023-11-03 11:36:14 25 4
gpt4 key购买 nike

我在 C# 客户端中,我有以下代码:

Uri uri = new Uri(@"http://myserver/test.php");
HttpWebRequest request = WebRequest.Create(uri) as HttpWebRequest;
request.Method = WebRequestMethods.Http.Post;
//request.ContentType = "application/json";

string req = "er3=12";
Console.WriteLine("Req: " + req);

System.Text.ASCIIEncoding encoder = new System.Text.ASCIIEncoding();

byte[] byteData = encoder.GetBytes(req);
request.ContentLength = byteData.Length;

using (Stream postStream = request.GetRequestStream())
{
postStream.Write(byteData, 0, byteData.Length);
}

那是调用一个 php 测试页面(很快将被 rest 服务取代):

<?php
echo "post vars:<br>";
foreach ($_POST as $key => $value) {
echo "$key -> $value<br>";
}
echo "end post vars:<br>";
?>

我的问题是,当我运行应用程序时,在响应中我得到了 "post vars:<br>end post vars:<br>" , 所以没有接收到变量er3。

如果我运行一个简单的 html 表单,则会正确读取 post 变量。

C# 代码中可能有什么错误或缺失?

谢谢

最佳答案

您需要设置数据的内容类型,以便 PHP 知道如何解析它。

像这样:

request.ContentType = "application/x-www-form-urlencoded";

application/x-www-form-urlencoded 是网络浏览器在发布表单数据时使用的标准 MIME 类型。

关于c# - 使用 C# 客户端发送 POST 变量时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6216697/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com