遇到介面開發時,對接客戶要求傳送請求資料為form表單提交,以下是經過大佬們寫過類似整理出來適合我自己用的一套
publicclass
formitemmodel
//////
值
/// public
string value
//////
值
/// public
long values
}
1private
void btn_click(object
sender, eventargs e)2);
19 formdatas.add(new
formitemmodel()
20);
24 formdatas.add(new
formitemmodel()
25);
29 formdatas.add(new
formitemmodel()
30);
34 formdatas.add(new
formitemmodel()
35);
39 formdatas.add(new
formitemmodel()
40);
44//
提交表單
45var result =htexamdocking.postform(url, formdatas);
46if (result != null)47
50 }
1///2
///使用post方法獲取字串結果
3///
4///
5///
post表單內容
6///
7///
預設20秒
8///
響應內容的編碼型別(預設utf-8)
9///
10public
static
string postform(string url, listformitems, cookiecontainer cookiecontainer = null, string refererurl = null, encoding encoding = null, int timeout = 20000)11
", boundary);
27//
請求流28
var poststream = new
memorystream();
29#region 處理form表單請求內容
30//
是否用form上傳檔案
31var formuploadfile = formitems != null && formitems.count > 0;32
if(formuploadfile)
33\"; filename=\"\"
" +38
"" +39"
\r\n\r\n";
40//
文字資料模板
41string dataformdatatemplate =42"
\r\n--
" + boundary +43"
\r\ncontent-disposition: form-data; name=\"\"
" +44
"\r\n\r\n";
45foreach (var item in
formitems)
4657
else
5864
//統一處理
65byte formdatabytes = null;66
//第一行不需要換行
67if (poststream.length == 0
)68 formdatabytes = encoding.utf8.getbytes(formdata.substring(2, formdata.length - 2
));69
else
70 formdatabytes =encoding.utf8.getbytes(formdata);
71 poststream.write(formdatabytes, 0
, formdatabytes.length);72}
73//
結尾74
var footer = encoding.utf8.getbytes("
\r\n--
" + boundary + "
--\r\n");
75 poststream.write(footer, 0
, footer.length);
7677}78
else
7982
#endregion
8384 request.contentlength =poststream.length;
8586
#region 輸入二進位製流
87if (poststream != null)88
99100
////debug
101//
poststream.seek(0, seekorigin.begin);
102//
streamreader sr = new streamreader(poststream);
103//
var poststr = sr.readtoend();
104 poststream.close();//
關閉檔案訪問
C 介面開發遇到的問題
1 如果資料無法通過request.form method post request.querystring method get 來取得相關引數資料。資料就有可能通過流的方式傳遞過來的。stream stream context.request.inputstream stream.positio...
做專案時遇到的幾個關於C 和SQL的細節問題(二)
6 js中的中文顯示到頁面上時,一般都會亂碼,解決辦法 就是在引用 的時候加上charset。gb2312如果不行,可以換用其它的試試,如 utf 8等 7 儲存上傳的檔案時,為了減少各種可能的衝突,最好是用當前時間 精確到分或秒 加上使用者的id生成乙個新的檔名,再在資料庫中儲存原檔名和新檔名。8...
做SQL解析時遇到的問題
相對於算術表示式,json和xml等解析,sql就比較複雜了。舉個例子來說 符號 是目前的sqlanalyzer1.00中作為進入遞迴的標誌之一,到 結束,中間是個查詢語句。如果測試用例也是這樣,自然沒有問題,但是,sql是靈活的.首先,括號裡未必是子查詢,它可能是函式的一部分,比如count 這時...