2. 基於httpwebrequest 的get/post方法
關於網路資料請求的類很多,httpwebrequest,webrequest,webclient以及httpclient,具體差別在此不在贅述,在應用方面介紹webclient與httpclient則顯得比較比較簡單粗暴,httpwebrequest繼承自webrequest,可通過引數進行請求控制。
/// example :閔行區
此種方式應用比較普遍,但是當傳遞引數中存在檔案如時則需要用到multipart/form-data方式
///
/// 採用httpwebrequest post方法請求資料
///
///
/// body是要傳遞的引數,格式:api_keyi=******&api_secret=******x
此種方式請求資料時,請求的資料流比較繁瑣,需要自己來確定,即httpwebrequest.getrequeststream().write(btbodys, 0, btbodys.length);中的btbodys需要自己構造,比較繁瑣。其構造主體如下所示:
/// 呼叫入口
///
///
///
///
public
static
string
onrequest
(dictionary<
string
,object
> postparameter,
string url)
//主呼叫程式
", guid.
newguid()
);byte
body=
getpostform
(postparameter, boundary)
;string contenttype =
"multipart/form-data; boundary="
+ boundary;
return
onwebrequest
(body, url, contenttype)
;//return postform(url, contenttype, body);
}private
static
byte
getpostform
(dictionary<
string
,object
> postparameter,
string boundary)
//獲取請求主體
isfirstpara =
true
;//若需要新增檔案資訊如txt等增加else分支新增
if(para.
value
is postimage)
\r\ncontent-disposition: form-data; name=\"\"; filename=\"\"\r\ncontent-type: \r\n\r\n"
,new
object
);stream.
write
(encoding.
getbytes
(imagestatement),0
, encoding.
getbytecount
(imagestatement));
byte
imagecontent =
getimageinfo
(postimage.fullpath)
; stream.
write
(imagecontent,
0, imagecontent.length);}
else
\r\ncontent-disposition: form-data; name=\"\"\r\n\r\n"
, boundary, para.key, para.value)
; stream.
write
(encoding.
getbytes
(regularstatement),0
, encoding.
getbytecount
(regularstatement));
}}string end =
"\r\n--"
+ boundary +
"--\r\n"
; stream.
write
(encoding.
getbytes
(end),0
, encoding.
getbytecount
(end));
stream.position =
0l;byte
bodyarr =
newbyte
[stream.length]
; stream.
read
(bodyarr,
0, bodyarr.length)
; stream.
close()
;return bodyarr;
}private
static
string
onwebrequest
(byte
postform,
string url,
string contenttype)
//資料請求
//通過路徑獲取資訊
return imageinfo;
}}
static
void
main
(string
args)
呼叫時引數為請求的url以及dictionary型別的主體引數,傳入時只需要乙個引數呼叫時的key(上述**為"image_file")和包含路徑的物件postimage,如果傳入引數還需要其他檔案如txt格式等的檔案時,只需要通過filestream讀取出來即 小程式網路請求request封裝
4 總結 api.js 中統一存放後台api介面,方便管理。測試位址 const apirooturl module.exports get請求封裝 function get url,data post請求封裝 獲取首頁資料 getindexpagerdata function 此處為使用封裝的po...
Request獲取請求資料
request獲取請求頭的方式 方式1 string headvalue request.getheader 要共取頭的名字 方式2 enumeration e request.getheaders 要共取頭的名字 while e.hasmoreelements 獲取請求頭的名稱 enumerati...
Request請求物件
一 request物件由伺服器建立,我們使用 瀏覽器訪問伺服器資源原理 二 request體系結構 其中,servlet 的service 方法引數列表是 servletrequest物件,httpservlet 的 doget 和 dopost 方法引數列表是用的 httpservletreque...