c# - HttpClient POST 生成 GET 而不是

标签 c# php .net httpclient

sleep 不足和盯着我的代码看几个小时让我屈服了。

这是我的问题:

我想在我的 C# Forms 应用程序中发送 POST 请求,并检索结果。

一切正常,除了传输 POST正文:请求变成空的,而不是我的内容,而且我很久以后才发现,带有 GET REQUEST_METHOD相反。

服务器端应该不是问题,当我通过网络表单 (HTML) 发送请求时,一切正常。

c#:

async Task<string> reqres(string name, string logs)
{
    using (var client = new HttpClient())
    {
        string handler = settings.handler;  // php script on server

        var values = new Dictionary<string, string>();
        values.Add("name", name);
        values.Add("logs", logs);

        var response = await client.PostAsync(hand, new FormUrlEncodedContent(values));
        var contents = response.Content.ReadAsStringAsync().Result;
        return contents;
    }
}

我总是从我的服务器得到响应,但服务器总是说它得到了一个 GET请求。

这是我的服务器输出:

PHP:

Array
    (
        [CONTENT_TYPE] => application/x-www-form-urlencoded
        [DOCUMENT_ROOT] => /path/account/example.com/index
        [GATEWAY_INTERFACE] => CGI/1.1
        [HTTP_CONNECTION] => Keep-Alive
        [HTTP_HOST] => www.example.com
        [PATH] => /bin
        [PHPRC] => /etc/php5.3/cgi/example.com
        [QUERY_STRING] => 
        [REDIRECT_STATUS] => 200
        [REMOTE_ADDR] => xx.xxx.xx.xxx
        [REMOTE_PORT] => 60149
        [REQUEST_METHOD] => GET
        [REQUEST_URI] => /path/script.php
        [SCRIPT_FILENAME] => /path/account/directory/index/path/script.php
        [SCRIPT_NAME] => /path/script.php
        [SERVER_ADDR] => xxx.x.xxx.xxx
        [SERVER_ADMIN] => webmaster@example.com
        [SERVER_NAME] => www.example.com
        [SERVER_PORT] => 80
        [SERVER_PROTOCOL] => HTTP/1.1
        [SERVER_SIGNATURE] => Apache/2.2.22 Server at www.example.com Port 80

[SERVER_SOFTWARE] => Apache/2.2.22 [PHP_SELF] => /path/script.php [REQUEST_TIME] => 1463912396 ) </pre><br /> Nope. // result of $_POST query Array // print_r($_POST); ( )

谁能告诉我这是怎么回事?是什么让你眼前一亮?这个问题的根源可能是什么?

最佳答案

啊啊啊啊啊啊!诅咒!

毕竟是一个重定向...

我让 200 (OK) 欺骗我去寻找其他地方......JonStirling 好心地让我意识到在 之前仍然可能发生重定向。

而且,果然,在我确定我没有被重定向到 !www 之后。 -> www.,它作为一个 POST。

呃......我真的认为在这种情况下这些层的实现很差

关于c# - HttpClient POST 生成 GET 而不是,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37373138/

相关文章:

c# - 记录器提供程序 : How can I implement a custom formatter

php - 在 MySQL 中使用唯一引用作为主键

c# - 无法解析 System.Web.Extensions 程序集

c# - 新项目的 Linq to SQL

C# 如何在应用程序中存储密码

c# - 我可以用 C# 编写 Windows 8 RT 游戏吗

PHP 警告 : PHP Startup: ? ????????: 无法初始化模块

php - 将上传集成到现有表单 (PHP)

c# - ScintillaNET 中的缩进和智能缩进

c# - DLL 中有什么以及它是如何工作的?