版權(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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 中學(xué)教師職稱晉升制度
- 企業(yè)員工培訓(xùn)與素質(zhì)拓展訓(xùn)練制度
- 交通宣傳教育材料制作與發(fā)放制度
- 2026年工程監(jiān)理員工程質(zhì)量控制與安全管理試題
- 2026年全科醫(yī)師規(guī)范化培訓(xùn)結(jié)業(yè)考試醫(yī)學(xué)診斷技能題
- 鑄造培訓(xùn)課件范文
- 昆蟲標(biāo)本鑒定服務(wù)合同
- 古對今課件練習(xí)題
- 2026適應(yīng)氣候變化從業(yè)人員指南:自然環(huán)境風(fēng)險與解決方案-
- 2024年靈璧縣幼兒園教師招教考試備考題庫帶答案解析(奪冠)
- 2026年上半年眉山天府新區(qū)公開選調(diào)事業(yè)單位工作人員的參考題庫附答案
- 用電安全隱患檢測的新技術(shù)及應(yīng)用
- 新疆克州阿合奇縣2024-2025學(xué)年七年級上學(xué)期期末質(zhì)量檢測英語試卷(含答案及聽力原文無音頻)
- 《水庫泥沙淤積及影響評估技術(shù)規(guī)范》
- 2023-2024學(xué)年浙江省杭州市西湖區(qū)教科版五年級上冊期末考試科學(xué)試卷
- GB/T 7948-2024滑動軸承塑料軸套極限PV試驗方法
- DL∕T 1057-2023 自動跟蹤補償消弧線圈成套裝置技術(shù)條件
- AQ 2003-2018 軋鋼安全規(guī)程(正式版)
- 村委會指定監(jiān)護人證明書模板
- 送給業(yè)主禮物方案
- JJG 393-2018便攜式X、γ輻射周圍劑量當(dāng)量(率)儀和監(jiān)測儀
評論
0/150
提交評論