本文介紹了如何使用c#,通過httpwebrequest方法,向服務端傳送get,post,put和delete請求
在客戶端,通過httpwebrequest方法,向服務端傳送get,post,put和delete請求,但是由於服務端的接收引數不同,以及在具體請求下有稍微的不同,故分為以下幾種情況(本文所有**均為底層介面的形式給出,可以直接被上層具體方法呼叫)
get請求接收引數的方式通常均為@requestparam,此時,請求引數實際上是以 「url?param1=xx¶m2=xx」的形式傳遞的,所以**如下
//url為請求的**,param引數為需要查詢的條件(服務端接收的引數,沒有則為null)
//返回該次請求的響應
public
string
get(string url,dictionaryparam)
url = url.substring(0, url.length - 1);
}
httpwebrequest request = webrequest.create(url) as httpwebrequest;//建立請求
request.method = "get"; //請求方法為get
httpwebresponse res; //定義返回的response
try
catch (webexception ex)
streamreader sr = new streamreader(res.getresponsestream(), encoding.utf8);
string content = sr.readtoend(); //響應轉化為string字串
return content;
}
當在post或者put請求以@requestparam接收引數時,實際提交引數的形式是類似於表單提交,這種情況下,每乙個提交的引數前都需要新增boundary,用於將不同的引數分開,具體的提交方式可以參考我的另一篇文章:c#上傳檔案到服務端
對於post請求,除非上傳檔案的特殊情況,否則我們推薦服務端以requestbody形式接收引數,因為在需要接受的引數較多時,**可以更加簡潔,並且不再需要後期增加接收的引數,body即包含了乙個物件所有的屬性。
言歸正傳,這種情況的處理是最理想的,只需要將需要提交的引數以json的方式提交即可,**如下:
//url為請求的**,param為需要傳遞的引數
//返回服務端的額響應
public
string
post(string url, dictionaryparam)
}string jsonstring = json.tostring();//獲得引數的json字串
byte jsonbyte = encoding.utf8.getbytes(jsonstring);
stream poststream = request.getrequeststream();
poststream.write(jsonbyte, 0, jsonbyte.length);
poststream.close();
//傳送請求並獲取相應回應資料
string content = sr.readtoend(); //獲得響應字串
nodejs使用http客戶端傳送請求
這裡使用乙個第三方模組,needle,其使用方式比nodejs自帶的http模組好用。package.json依賴 dependencies 在檔案頭部引用模組 const needle require needle 請求引數,json格式 const allparams needle.reques...
HTTP客戶端傳送Post和Get請求
1 傳送請求 通過request物件傳送請求 建立request物件 設定request引數 request.method post request.contentlength encoding.utf8.getbytecount postdatastr request.cookiecontaine...
C 服務端與客戶端
c 服務端與客戶端連線實現的由來 那麼既然乙個伺服器端口可以應對多個客戶端連線,那麼接下來我們就看一下,如何讓多個客戶端與服務端連線。如同我們上面所說的,乙個tcpclient就是乙個socket,所以我們只要建立多個tcpclient,然後再呼叫connect 方法就可以了 c 服務端與客戶端連線...