//例項化webclient client = new webclient();
//位址
string path = "
";//資料較大的引數
//引數轉流
byte bytearray =encoding.utf8.getbytes(datastr);
//採取post方式必須加的header,如果改為get方式的話就去掉這句話即可
client.headers.add("
content-type
", "
");//長度
client.headers.add("
contentlength
", bytearray.length.tostring());
//上傳,post方式,並接收返回資料(這是同步,需要等待接收返回值)
byte responsedata = client.uploaddata(path, "
post
", bytearray);
//釋放
client.dispose();
//處理返回資料(一般用json)
string srcstring = encoding.utf8.getstring(responsedata);
疑惑:引數是一段 xml ,並且已經加密,xml資料量較小只是幾段文字。
此時此方法不好使,但是用方式三就是好使的,原因未知。
//繫結事件,為了獲取返回值
client.uploaddatacompleted += new
uploaddatacompletedeventhandler(uploaddatacallback2);
//這裡是url位址
uri uri = new
uri(url);
//非同步post提交,不用等待。
client.uploaddataasync(uri, "
post
", bytearray);
//接收返回值的方法
public
static
void
uploaddatacallback2(object sender, uploaddatacompletedeventargs e)
//位址string url = "
" + id + "";//
例項化webclient client = new
webclient();
//上傳並接收資料
byte responsedata =client.downloaddata(url);
//接收返回的json的流資料,並轉碼
string srcstring = encoding.utf8.getstring(responsedata);
//需要新寫個類繼承webclient,並重寫
//然後例項化,就可以設定超時時間了。
例:webclient webclient = new
webdownload();
//////
webclient 超時設定
///public
class
webdownload : webclient
set }
public
webdownload()
public webdownload(int
timeout)
protected
override
webrequest getwebrequest(uri address)
}
//位址string url = "
?pro=
" +pro;
//傳的引數
//轉成位元組
byte bytearray1 =encoding.utf8.getbytes(datastr1);
//建立webrequest
//post方式
webrequest.method = "
post";
//中預設的enctype,form表單資料被編碼為key/value格式傳送到伺服器(表單預設的提交資料的格式)
webrequest.contenttype = "";
//獲取位元組數
webrequest.contentlength =encoding.utf8.getbytecount(datastr1);
//獲取用於寫入請求資料的 system.io.stream 物件
stream webstream =webrequest.getrequeststream();
//向當前流中寫入位元組序列,並將此流中的當前位置提公升寫入的位元組數。
webstream.write(bytearray1, 0
, bytearray1.length);
//獲取返回資料
//轉碼
streamreader sr = new
streamreader(response.getresponsestream(), encoding.utf8);
//返回的結果
string ret =sr.readtoend();
//關閉
sr.close();
response.close();
webstream.close();
c 多執行緒訪問介面
c 2005後不再支援多執行緒直接訪問介面的控制項 介面建立執行緒與訪問執行緒不是同乙個執行緒 不過可以使用delegate來解決 2.定義執行緒函式 在另乙個執行緒中可以對介面控制項進讀操作 view plaincopy to clipboardprint?private void progres...
C 訪問帶密碼的ACCESS資料庫
c 訪問帶密碼的access資料庫 在使用.net時發現訪問有password 的access與訪問有password的sql server不一樣,不用嚮導時access connectionstring provider microsoft.jet.oledb.4.0 data source pa...
c 後台訪問介面封裝好的方法
在平時的工作學習生活中,難免要遇到一些特殊情況,在特殊情況下我們會選擇將方法封裝在介面裡並且發布,在我們需要訪問的時候再通過後台 來實現呼叫介面來返回資料。1 在vs2015中新建webapi,新建類getapkinfo 其中。filepath為引數。2 將介面通過iis發布後,我們在後台就可以通過...