2016-05-22 88 views
1

睡眠不足,並在我的代碼凝視的時間讓我放棄在HttpClient的POST生成GET而不是

這裏是我的問題:

我想我的C#窗體應用程序中發送POST請求,檢索結果。

一切正常,除了傳輸POST體:不是我的內容,要求變成了空,因爲我發現只有長期以後,用GETREQUEST_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); ( )

誰能告訴我,什麼是錯的?什麼打擊你的眼睛?什麼可能是這個問題的根源?

+0

聽起來像有可能在那裏發生重定向。 –

+0

@JonStirling它說200,這是不是意味着目的地沒有碰到? –

+0

不,在它遇到200頁之前,仍然會有301/302等等發生。 –

回答

1

AAAAAAAARGH!詛咒!

WAS重定向畢竟...

我讓200(OK)誘騙我到別處找......好心JonStirling讓我知道,有可能仍然是重定向發生之前。

而且,當我確定我沒有重定向!www。 - > www,它用作POST。

呃......我真的覺得在這種情況下圖層實施得不好