///?& lt總結& gt?
///?在POST模式下創建HTTP請求?
///?& lt/summary & gt;?
///?& ltparam?name = " url " & gt請求的URL
///?& ltparam?name = " parameters " & gt伴隨請求發布的參數名和參數值字典
///?& ltparam?name = " timeout " & gt請求的超時
///?& ltparam?name = " userAgent " & gt請求的客戶端瀏覽器信息,可以為空
///?& ltparam?name = " requestEncoding " & gt發送HTTP請求時使用的編碼
///?& ltparam?name = " cookies " & gt如果不需要身份驗證,則通過HTTP請求發送的Cookie信息可以為空
///?& 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(例如消息);
}
回歸?"";
}請求接口的方法
字典& lt弦,?字符串& gt?參數?=?新的?字典& lt弦,?字符串& gt();
參數。Add("USER_ACCOUNT ",用戶名);
參數。Add("USER_PASSWORD ",pwd);
回歸?Httpposthelper。posthttpresponse("接口URL ",?參數,?null);