HttpClient POST生成GET
缺乏睡眠和盯着我的代码几小时让我屈服。
这是我的问题:
我想在我的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);
(
)
谁能告诉我什么是错的? 什么打击你的眼睛? 什么可能是这个问题的根源?
AAAAAAAARGH! 诅咒!
它毕竟是一个重定向...
我让200(OK)欺骗我寻找其他地方...... JonStirling善意地让我意识到,在那之前还有可能发生重定向。
而且,当我确定我没有被重定向后,果然!www。 - > www,它用作POST。
呃...我真的认为在这种情况下,这些图层很难实现
链接地址: http://www.djcxy.com/p/48805.html