當前位置:成語大全網 - 書法字典 - 如何用C#開發壹個基於http的接口?NEt,它只支持post模式來傳遞參數。除了webservice誰能舉個例子?非常感謝!

如何用C#開發壹個基於http的接口?NEt,它只支持post模式來傳遞參數。除了webservice誰能舉個例子?非常感謝!

私人?靜電?只讀?字符串?DefaultUserAgent?=?“Mozilla/4.0?(兼容;?MSIE?6.0;?Windows?NT?5.2;?SV 1;?。網?CLR?1.1.4322;?。網?CLR?2.0.50727)";

///?& lt總結& gt?

///?在POST模式下創建HTTP請求?

///?& lt/summary & gt;?

///?& ltparam?name = " url " & gt請求的URL

///?& ltparam?name = " parameters " & gt伴隨請求發布的參數名和參數值字典

///?& ltparam?name = " timeout " & gt請求的超時

///?& ltreturns & gt& lt/returns & gt;?

公共?靜電?字符串?PostHttpResponse(字符串?網址,?字典& lt字符串,?字符串& gt?參數,

int?超時)

{

嘗試

{

如果?(字符串。IsNullOrEmpty(url))

{

扔?新的?ArgumentNullException(" URL ");

}

HttpWebRequest?請求?=?網絡請求。創建(網址)?作為?HttpWebRequest

請求。service point . expect 100繼續嗎?=?假的;

請求。ServicePoint.UseNagleAlgorithm?=?假的;?//妳用嗎?納格爾?不使用它?提高效率

//請求。AllowWriteStreamBuffering?=?假的;?//數據緩沖了嗎?假的?提高效率

請求。方法?=?”帖子”;

請求。ContentType?=?”application/x-www-form-urlencoded”;

請求。UserAgent?=?DefaultUserAgent

如果?(超時。散列值)

{

請求。超時?=?超時。價值;

}

其他

{

請求。超時?=?20000;

}

編碼?requestEncoding?=?編碼。get encoding(" UTF-8 ");

//如果需要POST數據?

如果?(!(參數?==?null?||?參數。數數?==?0))

{

StringBuilder?緩沖?=?新的?StringBuilder();

int?我?=?0;

foreach?(字符串?鑰匙?在?參數。按鍵)

{

如果?(我?& gt?0)

{

緩沖。append format(& amp;{0}={1}",?關鍵,?parameters[key]);

}

其他

{

緩沖。AppendFormat("{0}={1} ",?關鍵,?parameters[key]);

}

i++;

}

byte[]?數據?=?請求編碼。GetBytes(緩沖區。ToString());

使用?(流?溪流?=?請求。GetRequestStream())

{

溪流。寫(數據,?0,?數據。長度);

}

}

//獲取響應並設置響應代碼。

HttpWebResponse?回應?=?(HttpWebResponse)請求。GetResponse();

字符串?編碼?=?回應。ContentEncoding

如果?(編碼?==?null?||?編碼。長度?& lt?1)

{

編碼?=?“UTF-8”;?//默認編碼

}

//讀取響應流

StreamReader?讀者?=?新的?StreamReader(響應。GetResponseStream(),?編碼。GetEncoding(編碼));

字符串?returnData?=?讀者。ReadToEnd();

讀者。dispose();

回應。close();

回歸?returnData

}

接住?(例外?ex)

{

MessageUtil。ShowWarning(例如消息);

}

回歸?"";

}