Webapi建立和使用 以及填坑(二)

2021-08-22 11:33:44 字數 2391 閱讀 7275

webapi建立和使用 以及填坑(二)

上篇文章由於時間問題沒能講到post提交,今天做乙個補充

post:

當我們直接通過post傳送方式傳送會發現錯誤資訊

後面通過修改路由嘗試解決

此時再通過控制器到動作進行訪問

文章中說沒有重新生成也會出現這樣的錯誤,生成之後依然出錯(ctrl+shift+b)

事實上.net web api能夠正確的識別我們的控制器處理api/webtest,但不能找到乙個可以接受的方式處理請求。換句話說能找到控制器,找不到動作。

文章作者最後通過在msdn上web api官方說明找到解決方法

一、傳遞乙個引數

這個意思應該是在方法引數中需要使用[frombody]屬性強制請求內容,webapi會使用media-type格式化程式請求正文讀取name引數的值。

最後通過post傳送得到結果

當時我也好奇為什麼沒有值,後面通過除錯發現name值並沒有傳送過來

參考作者的說法web api要求請求傳遞的[frombody]引數是乙個特定的格式,這種格式也並不是key=value的鍵值形式。web api 的模型繫結器希望找到 [frombody] 裡沒有鍵名的值,也就是說, 不是 key=value ,而是=value 。

果然後台接收到了請求的值

既然已經得到了引數,那麼我現在要傳入兩個引數是不是應該這樣寫呢?(我當時也是這樣想的)

結果很遺憾

二、傳遞多個引數

後面又通過msdn查詢到資料

當時我的心情就是這樣:不起作用你特麼還寫。。。

於是我又犯傻的這樣嘗試了

得到的結果卻是

(腦闊痛)

於是看了下文章的講解,他解釋到[frombody]修飾的引數只能有乙個,如果需要多個引數,必須將引數封裝起來,而這個封裝是後台進行封裝(或者前台直接傳送json串)

a.前台傳送json串:

結果和我想的差不多直接將字串傳送過去,後台再進行解析

封裝了乙個user類

準備反序列化,結果

難受至極,找了很久的問題,才發現,我穿的json有問題,我只是單個的物件,結果我穿過去的是個陣列。

修改了json字串接著解析

mdf果然是json寫錯了,同志們需要細心啊

回歸主題:webapi使用post傳送json串後台進行解析到這裡就結束了

b.前台傳送key=value後台通過物件對映獲取

首先修改引數型別為user**如下

post通過傳送key=value傳送引數

在這裡webapi使用post傳送多引數使用key=value方式也就結束了。

DLL的建立使用以及注入

dll的入口函式 bool winapi dllmain hinstance hinstance,dword reason,lpvoid lpvreserved hinstance 該引數是當前dll模組的控制代碼,即本動態連線庫模組的例項控制代碼。reason 該引數表示dllmain 函式被呼叫...

git的使用以及遇到的小坑

git remote add url ssh t git git.coding.net這樣就可以本地訪問該遠端倉庫中的所有分支 git fetch remote name git remote rename git remote rm name git branch set upstream mas...

MAC下brew安裝 換源 使用以及坑

安裝 官網上就是讓你複製下面這段內容到終端執行 usr bin ruby e curl fssl 坑點一 有時候安裝會告訴你該使用者無法執行,這時候你需要切換到擁有管理員許可權的使用者,這時候你需要 sudo su 擁有管理員許可權的使用者 注意!不是root使用者而是擁有管理員許可權的使用者!坑點...