C 構造post引數一種看起來直觀點的方法

2021-06-22 21:16:41 字數 2101 閱讀 5935

因為本人經常愛用c#做一些爬蟲類的小東西,每次構造post引數的時候,都是直接字串拼接的方式的,有時候改起來不太方便。

場景:

需要post乙個位址

引數列表 :

username:管理員

password:123456

***:***

我想大部分人可能會這樣寫

string username = "管理員";

string password = "123456";

string *** = "***";

string postdata = string.format("username=&password=&***=", username, password, ***);

直接用字串來拼接的,這樣寫是最直接的,我一直都是這樣寫,然後到後來,比如引數十幾二十個的時候,不知道跟是誰,甚至有時候password手滑打成了pasword

碰到這些情況很蛋疼,因為這樣並不怎麼直觀。

然後我想到了下面的方法

首先是定義了乙個靜態方法,方便呼叫,注意引數型別

此方法2.0版本以上都是支援的。

public static string createpostdata(dictionarypostparameters)

return postdata;

}

然後還有linq版的,需要3.5版本以上不羅嗦

public static string createpostdata(dictionarypostparameters)

甚至還可以寫成擴充套件方法,這裡就不寫了。

然後構造post引數的時候就可以這樣

dictionaryparameters = new dictionary();

parameters.add("username", "管理員");

parameters.add("password", "123456");

parameters.add("***", "***");

string postdata = createpostdata(parameters);

因為post引數是鍵值對應的,這裡用字典的形式來表示出來,我個人感覺應該是蠻直觀了,以後需要修改哪個引數,直接定位

**執行結果:

當然,有時候我們post引數包含中文啊或者一些敏感字元,就需要進行urlencode了,下面是方法

//此方法需要新增system.web引用 程式集:system.web(在 system.web.dll 中)

//引數isencode 預設為 false 表示不需要轉碼,需要轉碼的時候指定引數為true即可

public static string createpostdata(dictionarypostparameters,bool isencode = false)

dictionaryparameters = new dictionary();

parameters.add("username", "管理員");

parameters.add("password", "123456");

parameters.add("***", "***");

string postdata = createpostdata(parameters,true);

**執行結果:

到這裡應該差不多了,有什麼不對的地方希望各位能指正出來。

scons 一種軟體構造工具

scons是一種開源軟體構建工具,即下一代構建工具。將scons視為經典的make實用程式的改進的跨平台替代品,它具有類似於autoconf automake和ccache之類的編譯器快取的整合功能。簡而言之,scons是一種更容易,更可靠和更快的軟體構建方式。scons作為sccons構建工具設計...

C 呼叫python指令碼並傳遞引數的一種方法

1 c 裡面怎麼呼叫python指令碼?2 python指令碼裡面怎麼獲取引數?先回答第乙個 c 裡面system.diagnostics.process.start 這裡面可以呼叫系統命令和程式 我們這裡只需要這樣寫就可以呼叫c say.py指令碼了,如下 system.diagnostics.p...

C中一種函式宣告方式及可變引數函式討論

本文部分原創,部分改編 可變引數函式改編自 kevintz的 c語言中可變引數的用法 一文 include 引入可變引數函式標頭檔案 include c語言中另一種函式宣告方式 print uint,buf,len int uint int buf int len 可變引數函式 void va fu...