小喵最近開始學習Web API,這種沒有畫面的運作方式還真有點不習慣,好在有Chrome裡面的PostMan與Fiddler這兩套工具的幫忙,可以順利進行學習。不過使用Fiddler剛學習POST的時候,就遇到程式總是收不到東西,總是 Nothing (VB.NET) / null (C#)。後來找了一下,原來~
緣起
小喵最近開始學習Web API,這種沒有畫面的運作方式還真有點不習慣,好在有Chrome裡面的 PostMan 與 Fiddler 這兩套工具的幫忙,可以順利進行學習。不過使用Fiddler剛學習POST的時候,就遇到程式總是收不到東西,總是 Nothing (VB.NET) / null (C#)。後來找了一下,原來~
狀況
小喵開始練習POST,於是簡單的用了以下這樣的程式
' POST api/values
Public Function PostValue(<FromBody()> ByVal value As String)
Return "Post : " & value.ToString
End Function
然後在 Fiddler 的 Composer 選擇了POST,並且在Body的地方放了
=topcat
預期可以收到 Post : topcat 這樣的訊息,但是每每收到的卻是【並未將物件參考設定為物件的執行個體。】
原因
後來找了一下相關的問題,發現了以下這一篇
http://stackoverflow.com/questions/10984040/post-parameter-is-always-null
答案揭曉,就是在Header中,少定義了 Content-Type
所以只要在Header中,加上以下這行
Content-Type: application/x-www-form-urlencoded
就可以收到如預期中的 Post : topcat 訊息了。
另外,如果要傳遞的是 json 的資料,也記得要將相關的Header改為
Content-Type: application/json
筆記一下,也提供大家參考
以下是簽名:
- 歡迎轉貼本站的文章,不過請在貼文主旨上加上【轉貼】,並在文章中附上本篇的超連結與站名【topcat姍舞之間的極度凝聚】,感恩大家的配合。
- 小喵大部分的文章會以小喵熟悉的語言VB.NET撰寫,如果您需要C#的Code,也許您可以試著用線上的工具進行轉換,這裡提供幾個參考
Microsoft MVP Visual Studio and Development Technologies (2005~2019/6) | topcat Blog:http://www.dotblogs.com.tw/topcat |