網路資料請求request

2021-09-28 15:04:32 字數 4667 閱讀 1106

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...