2013-08-02 30 views
2

如何讀取傳入呼叫的​​Twilio POST參數?我正在嘗試使用TwilioController,但我無法使用SmsRequest獲取Body和SmsSid。有人可以用C#中的示例幫助我,因爲我正在使用WebApi。 我嘗試使用Fiddler傳遞POST參數,但值爲空。所以我不確定我是否正確閱讀。如何在C#中使用TwiML讀取Twilio POST參數?

我甚至試着這樣做:

[HttpPost] 
    public string Post([FromBody] string smsReq) 
    { 
     return smsReq; 
     // return smsReq.Body + " " + smsReq.SmsSid; 
    } 

但是我得到空的SMSREQ當我通過從提琴手值。

這是我從小提琴手通過: 的User-Agent:提琴手 內容類型:應用程序/ x-WWW窗體-urlencoded 接受:應用/ XML 主機:本地主機:56846 的Content-Length:13

{ '': "Test"} 

試過上面只用{=「Test」}但沒有任何價值。 smsReq來到NULL。

回答

2

Twilio福音傳教士在這裏。

您應該能夠使用SMS請求對象中郵方法的參數:

public void Post([FromBody]SmsRequest) {} 

我用小提琴手要進行測試,合格的JSON這段代碼爲the Body of the POST request

{ 
"Body":"asdasdasdas", 
"From":"sadasdasds" 
} 

您還必須確保將請求的Content-Type標頭設置爲「application/json」,以便WebAPI知道您將它傳遞給JSON,以便將其反序列化。

希望有所幫助。

+0

但我想Web Api不允許你在Post中指定多個字符串作爲參數。 請參閱:http://encosia.com/using-jquery-to-post-frombody-parameters-to-web-api/ 如果我錯了,請糾正我。我最初使用SmsRequest對象作爲參數,就像我獲得所有參數一樣。但我無法理解如何閱讀它們或將它們傳遞給我在提琴手的帖子。爲了閱讀它們,我是否需要創建一個單獨的類來執行get-set來讀取來自SmsRequest的內容?你能幫助我,因爲我卡在那裏。謝謝。 – Ditty

+0

看到我上面的編輯。我嘗試了一個簡單的測試,看看它是如何工作的,但我得到了NULL。 – Ditty

+0

我編輯了我原來的答案,因爲你是對的,Post似乎只接受一個參數。我認爲你遇到的問題仍然與你如何測試端點有關。根據你的其他帖子(http://stackoverflow.com/questions/18005546/http-post-from-fiddler-giving-nullpointreference-error-and-cannot-understand-why)你沒有通過一個有效的身體Web API解析。我使用上面的方法簽名設置了一個測試,並使用Fiddler對其進行測試,結果如我所料。 –