2016-03-19 4 views
2

後の文字列要求

[HttpPost()] 
public IActionResult Post([FromBody]string value) 
{ 
    if (value == null) 
    { 
     return new HttpStatusCodeResult(400); 
    } 
    else 
    { 
     return new HttpStatusCodeResult(200); 
    } 
} 

私は要求を受信します

using(var client = new HttpClient()) 
{ 
    var content = new StringContent("test test"); 
    var response = client.PostAsync("http://localhost:57316/api/values", content).Result; 
    var responseString = response.Content.ReadAsStringAsync().Result; 
    Console.WriteLine(responseString); 
} 

他のアプリからHttpClientを使用して、それをポストに文字列をしようとしている私はasp.netコアWEBAPIでこのポスト要求ハンドラを持っています上記のハンドラをデバッグするとき、値は常にnullですが、私はそれが"test test"であると思います、間違っていますか?

+0

?べきではないこのリターン何か? – Christos

+0

@Christosはいそれはまた、あなたがPOST'、'のコードを共有してもらえ何か – Bread

+0

を返さずに動作するはずです?私が何かだと思いますこのメソッドの本体では正しくありません。 – Christos

答えて

1

リクエストで明示的にContent-Typeを設定していないので、ASP.NET Web APIがそれをJSONとして解釈している可能性がありますが、 ""(それ自体では引用符なし)は有効なJSONではありません。

は、これらのいずれかを試してみてください。

"text/plainの" への要求の Content-Typeヘッダーを設定し
  1. JSONの読者は、一般的に単一の値を好きではないとして、あなたには、いくつかのPOCOよう要求タイプを設定し、文字列をそのように設定することができnew StringContent("\"test test\"");
  2. を送信する二重引用符(すなわちとともに有効なJavaScript文字列として値を送信してみてください。 POST` `の型がvoidであるなぜ
関連する問題