1
睡眠不足,並在我的代碼凝視的時間讓我放棄在HttpClient的POST生成GET而不是
這裏是我的問題:
我想我的C#窗體應用程序中發送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] => [email protected]
[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);
(
)
誰能告訴我,什麼是錯的?什麼打擊你的眼睛?什麼可能是這個問題的根源?
聽起來像有可能在那裏發生重定向。 –
@JonStirling它說200,這是不是意味着目的地沒有碰到? –
不,在它遇到200頁之前,仍然會有301/302等等發生。 –