usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Net;usingSystem.IO;usingsystem.web;namespacewebapiclientdemo{ Public classrestclient {Private stringBaseUri; PublicRestclient (stringBaseUri) { This. BaseUri =BaseUri; } #regionDelete mode Public stringDelete (stringDatastringURI) { returnCommonhttprequest (data, URI,"DELETE"); } Public stringDelete (stringURI) { //Web Access Objects stringserviceurl =string. Format ("{0}/{1}", This. BaseUri, URI); HttpWebRequest Myrequest=(HttpWebRequest) webrequest.create (serviceurl); Myrequest.method="DELETE"; //Get interface return valueHttpWebResponse Myresponse =(HttpWebResponse) myrequest.getresponse (); StreamReader Reader=NewStreamReader (Myresponse.getresponsestream (), Encoding.UTF8); //string returnxml = Httputility.urldecode (reader. ReadToEnd ()); stringReturnxml =Reader. ReadToEnd (); Reader. Close (); Myresponse.close (); returnReturnxml; } #endregion #regionPut mode Public stringPut (stringDatastringURI) { returnCommonhttprequest (data, URI,"PUT"); } #endregion #regionPost Mode implementation Public stringPost (stringDatastringURI) { returnCommonhttprequest (Data,uri,"POST"); } Public stringCommonhttprequest (stringDatastringUristringtype) { //Web Access object, constructing the requested URL address stringserviceurl =string. Format ("{0}/{1}", This. BaseUri, URI); //object that constructs an HTTP requestHttpWebRequest Myrequest =(HttpWebRequest) webrequest.create (serviceurl); //turn into a network stream byte[] buf = System.Text.Encoding.GetEncoding ("UTF-8"). GetBytes (data); //SetMyrequest.method =type; Myrequest.contentlength=buf. Length; Myrequest.contenttype="Application/json"; Myrequest.maximumautomaticredirections=1; Myrequest.allowautoredirect=true; //Send RequestStream newstream =Myrequest.getrequeststream (); Newstream.write (BUF,0, buf. Length); Newstream.close (); //Get interface return valueHttpWebResponse Myresponse =(HttpWebResponse) myrequest.getresponse (); StreamReader Reader=NewStreamReader (Myresponse.getresponsestream (), Encoding.UTF8); stringReturnxml =Reader. ReadToEnd (); Reader. Close (); Myresponse.close (); returnReturnxml; } #endregion #regionGet mode implementation Public stringGet (stringURI) { //Web Access Objects stringserviceurl =string. Format ("{0}/{1}", This. BaseUri, URI); //constructs an object for a Web requestHttpWebRequest Myrequest =(HttpWebRequest) webrequest.create (serviceurl); //Get interface return value//gets the content of the response for the Web requestHttpWebResponse Myresponse =(HttpWebResponse) myrequest.getresponse (); //construct a StreamReader with a response streamStreamReader reader =NewStreamReader (Myresponse.getresponsestream (), Encoding.UTF8); //string returnxml = Httputility.urldecode (reader. ReadToEnd ()); stringReturnxml =Reader. ReadToEnd (); Reader. Close (); Myresponse.close (); returnReturnxml; } #endregion }}
Invocation mode
usingSystem;usingSystem.Collections.Generic;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;namespacewebapiclientdemo{classProgram {Static voidMain (string[] args) {restclient Client=NewRestclient ("http://localhost:50168"); #regionGet Mode Request Liststringstr = client. Get ("api/values"); Console.WriteLine (str); #endregion #regionGet method Request ID corresponding datastringStrgetbyid = client. Get ("API/VALUES/2"); Console.WriteLine (Strgetbyid); #endregion #regionPost method to add datastringPosturi ="api/values/"; stringUserjson =@"{"" Id "": 123, "" Age "": "," "UserInfo" ": " "111" "}"; stringPostresponse =client. Post (Userjson, Posturi); Console.WriteLine (Postresponse); #endregion #regionDeletestringDeleteuri ="API/VALUES/3"; stringDeleteresponse =client. Delete (Deleteuri); Console.WriteLine (Deleteresponse); #endregion #regionPutstringPuturi ="api/values/123"; stringUserJson3 =@"{"" Id "": 123, "" Age "": "," "UserInfo" ": " "111" "}"; stringPutresponse =client. Post (UserJson3, Puturi); Console.WriteLine (Putresponse); #endregionConsole.readkey (); } }}