///?& 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(例如消息);
}
回歸?"";
}