webClient请求JAVA超时解决方案

    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 "";
            }
        }

 

posted on 2016-07-07 13:56  ~紫鱼~  阅读(3536)  评论(0编辑  收藏  举报