private class MyWebClient: WebClient {
protected override WebRequest GetWebRequest(Uri uri) {
WebRequest w = base.GetWebRequest(uri);
w.Timeout = 20 * 60 * 1000;
return w;
}
}
public static string GetInnerModel(string str) {
try {
string url = "http://xx.com/AgileWSPX/services/rest/transferModel/";
var rando = Random();
var postString = str;
var date = DateTime.Now.ToString("mmssffff");
byte[] postData = Encoding.UTF8.GetBytes(postString);
var code = Encrypt(date + rando,"dahuagdp");
MyWebClient client = new MyWebClient();
client.Headers.Add("Nonce","" + rando + "");
client.Headers.Add("Authorization","" + code + "");
client.Headers.Add("Content-Type","application/x-www-form-urlencoded;");
var httpurl = url + date;
byte[] responseData = client.UploadData(httpurl,"POST",postData);//得到返回字符流
var data = Encoding.UTF8.GetString(responseData);
if(!string.IsNullOrEmpty(data)) {
var dataList = data.Split(',').Distinct();
data = string.Join(",",dataList.Select(p => p));
}
return data;
} catch(Exception ex)
{
return "";
}
}
private static string Random() {
return DateTime.Now.ToString("mmssffff");
}
public static string Encrypt(string pToDecrypt,string sKey) {
try {
byte[] data = Encoding.UTF8.GetBytes(pToDecrypt);
using(var des = new DESCryptoServiceProvider()) {
des.Key = Encoding.UTF8.GetBytes(sKey);
des.IV = Encoding.UTF8.GetBytes(sKey);
using(MemoryStream ms = new MemoryStream()) {
using(var cs = new CryptoStream(ms,des.CreateEncryptor(),CryptoStreamMode.Write)) {
cs.Write(data,0,data.Length);
cs.FlushFinalBlock();
}
return Convert.ToBase64String(ms.ToArray());
}
}
} catch {
return "";
}
}