C#使用Post調(diào)用接口并傳遞json參數(shù)_第1頁
C#使用Post調(diào)用接口并傳遞json參數(shù)_第2頁
C#使用Post調(diào)用接口并傳遞json參數(shù)_第3頁
C#使用Post調(diào)用接口并傳遞json參數(shù)_第4頁
C#使用Post調(diào)用接口并傳遞json參數(shù)_第5頁
已閱讀5頁,還剩2頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第C#使用Post調(diào)用接口并傳遞json參數(shù)目錄Post調(diào)用接口并傳遞json參數(shù)Post請求參數(shù)(發(fā)送Json參數(shù)、發(fā)送普通參數(shù))1.發(fā)送Json格式的Post請求2.帶參數(shù)的Post請求

Post調(diào)用接口并傳遞json參數(shù)

publicstringPost(stringUrl,stringjsonParas)

stringstrURL=Url;

//創(chuàng)建一個HTTP請求

HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(strURL);

//Post請求方式

request.Method="POST";

//內(nèi)容類型

request.ContentType="application/json";

//設(shè)置參數(shù),并進行URL編碼

stringparaUrlCoded=jsonParas;//System.Web.HttpUtility.UrlEncode(jsonParas);

byte[]payload;

//將Json字符串轉(zhuǎn)化為字節(jié)

payload=System.Text.Encoding.UTF8.GetBytes(paraUrlCoded);

//設(shè)置請求的ContentLength

request.ContentLength=payload.Length;

//發(fā)送請求,獲得請求流

Streamwriter;

writer=request.GetRequestStream();//獲取用于寫入請求數(shù)據(jù)的Stream對象

catch(Exception)

writer=null;

Console.Write("連接服務(wù)器失敗!");

//將請求參數(shù)寫入流

writer.Write(payload,0,payload.Length);

writer.Close();//關(guān)閉請求流

//StringstrValue="";//strValue為http響應(yīng)所返回的字符流

HttpWebResponseresponse;

//獲得響應(yīng)流

response=(HttpWebResponse)request.GetResponse();

catch(WebExceptionex)

response=ex.ResponseasHttpWebResponse;

Streams=response.GetResponseStream();

//StreampostData=Request.InputStream;

StreamReadersRead=newStreamReader(s);

stringpostContent=sRead.ReadToEnd();

sRead.Close();

returnpostContent;//返回Json數(shù)據(jù)

//調(diào)用:stringaskurl=testUrl+"sid="+sid+"mobi="+mobi+"sign="+sign+"msg="+encodeMsgs;

//stringrelust=Post(askurl,"");

//或者stringrelust=Post(askurl,sid="+sid+"mobi="+mobi+"sign="+sign+"msg="+encodeMsgs);

Post請求參數(shù)(發(fā)送Json參數(shù)、發(fā)送普通參數(shù))

1.發(fā)送Json格式的Post請求

(1)Post調(diào)用

stringPostUrl="http://IP:端口/AAA/BBB/CCC";

stringid="123";

stringName="小黑";

JObjectpatientinfo=newJObject();

JArrayids=newJArray();

ids.Add(id);

patientinfo["ids"]=ids;

patientinfo["Name"]=Name;

stringsendData=JsonConvert.SerializeObject(patientinfo);

//eg:

發(fā)送Url需要的格式:sendData={"ids":[123],"Name":小黑}

stringresultData=Post(sendData,PostUrl);

(2)Post方法

#regionPost請求

///summary

///httpPost請求

////summary

///paramname="parameterData"參數(shù)/param

///paramname="serviceUrl"訪問地址/param

///paramname="ContentType"默認application/json,application/x-www-form-urlencoded,multipart/form-data,raw,binary/param

///paramname="Accept"默認application/json/param

///returns/returns

publicstringPost(stringparameterData,stringserviceUrl,stringContentType="application/json",stringAccept="application/json")

//先根據(jù)用戶請求的uri構(gòu)造請求地址

//stringserviceUrl=string.Format("{0}/{1}",this.BaseUri,uri);

//創(chuàng)建Web訪問對象

HttpWebRequestmyRequest=(HttpWebRequest)WebRequest.Create(serviceUrl);

//把用戶傳過來的數(shù)據(jù)轉(zhuǎn)成“UTF-8”的字節(jié)流

byte[]buf=System.Text.Encoding.GetEncoding("UTF-8").GetBytes(parameterData);

myRequest.Method="POST";

//myRequest.Accept="application/json";

//myRequest.ContentType="application/json";////Content-Type:application/x-www-form-urlencoded

myRequest.AutomaticDecompression=DecompressionMethods.GZip;

myRequest.Accept=Accept;

//myRequest.ContentType=ContentType;

myRequest.ContentType="application/json;charset=UTF-8";

myRequest.ContentLength=buf.Length;

myRequest.MaximumAutomaticRedirections=1;

myRequest.AllowAutoRedirect=true;

//myRequest.Headers.Add("content-type","application/json");

//myRequest.Headers.Add("accept-encoding","gzip");

//myRequest.Headers.Add("accept-charset","utf-8");

//發(fā)送請求

Streamstream=myRequest.GetRequestStream();

stream.Write(buf,0,buf.Length);

stream.Close();

//通過Web訪問對象獲取響應(yīng)內(nèi)容

HttpWebResponsemyResponse=(HttpWebResponse)myRequest.GetResponse();

//通過響應(yīng)內(nèi)容流創(chuàng)建StreamReader對象,因為StreamReader更高級更快

StreamReaderreader=newStreamReader(myResponse.GetResponseStream(),Encoding.UTF8);

//stringreturnXml=HttpUtility.UrlDecode(reader.ReadToEnd());//如果有編碼問題就用這個方法

stringreturnData=reader.ReadToEnd();//利用StreamReader就可以從響應(yīng)內(nèi)容從頭讀到尾

reader.Close();

myResponse.Close();

returnreturnData;

#endregion

2.帶參數(shù)的Post請求

(1)Post調(diào)用

stringPostUrl="http://IP:端口/AAA/BBB/CCC";

Dictionarystring,stringdic=newDictionarystring,string

dic.Add("Id","123");

dic.Add("Name","笑笑");

stringresultData=Post(dic,PostUrl);

(2)Post方法

#regionpost帶參數(shù)的請求

///summary

///指定Post地址使用Get方式獲取全部字符串

///Post是從服務(wù)器上傳送數(shù)據(jù)

////summary

///paramname="url"請求Url地址/param

///paramname="dic"拼接Url的字段/param

///returns/returns

publicstaticstringPost(stringurl,Dictionarystring,stringdic)

#region【網(wǎng)上查的】

//eg:http://IP:端口/AAA/BBB/CCC//發(fā)送對應(yīng)參數(shù)

#region創(chuàng)建Web訪問對象

HttpWebRequestreq=(HttpWebRequest)WebRequest.Create(url);

//req.Method="POST";

//req.ContentType="application/x-www-form-urlencoded";

req.Method="POST";

req.AutomaticDecompression=DecompressionMethods.GZip;

req.ContentType="application/json;charset=UTF-8";

#endregion

#regionPost添加并拼接參數(shù),形成對應(yīng)Url地址

StringBuilderbuilder=newStringBuilder();

inti=0;

if(dic.Count0)

foreach(varitemindic)

if(i0)

builder.Append("

builder.AppendFormat("{0}={1}",item.Key,item.Value);

i++;

#endregion

#region發(fā)送請求

byte[]data=Encoding.UTF8.GetBytes(builder.ToString());

req.ContentLength=data.Length;

using(StreamreqStream=req.GetRequestStream())

reqStream.Write(data,0,data.Length);

reqStream.Close();

#endregion

#region通過Web訪問對象獲取響應(yīng)內(nèi)容

stringresult="";

HttpWebResponseresp=

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論