缺乏睡眠和长时间盯着代码让我不得不放弃。以下是我的问题:
我想在我的c#表单应用程序中发送一个POST请求,并检索结果。一切都有效,除了传输POST正文:请求为空而不是我的内容,并且,直到很久以后才发现,使用GET REQUEST_METHOD代替。服务器端不应该是问题,当我通过Web表单(HTML)发送请求时,一切正常。
c#:
我想在我的c#表单应用程序中发送一个POST请求,并检索结果。一切都有效,除了传输POST正文:请求为空而不是我的内容,并且,直到很久以后才发现,使用GET REQUEST_METHOD代替。服务器端不应该是问题,当我通过Web表单(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. // $_POST 查询的结果
Array // print_r($_POST);
(
)
谁能告诉我出了什么问题?你注意到了什么?这个问题的根源是什么?