zoukankan      html  css  js  c++  java
  • HttpWebRequest

    public static string GetMobileConfByUserId(string userid)
             {
                 string rs = null;
                 if (!string.IsNullOrEmpty(userid))
                 {
                     if (string.IsNullOrEmpty(strOnLine))
                     {
                         strOnLine = ConfigurationManager.AppSettings["OnLineUrl"];
                     }
                     ServicePointManager.DefaultConnectionLimit = 300;
                     System.GC.Collect();
                     CookieContainer cookieContainer = new CookieContainer();
                     // 设置提交的相关参数 
                    HttpWebRequest request = null;
                     HttpWebResponse SendSMSResponse = null;
                     Stream dataStream = null;
                     StreamReader SendSMSResponseStream = null;
                     try
                     {
                         request = WebRequest.Create(strOnLine) as HttpWebRequest;
                         request.Method = "POST";
                         request.KeepAlive = false;
                         request.ServicePoint.ConnectionLimit = 300;
                         request.AllowAutoRedirect = true;
                         request.Timeout = 10000;
                         request.ReadWriteTimeout = 10000;
                         request.ContentType = "application/json";
                         request.Accept = "application/xml";
                         request.Headers.Add("X-Auth-Token", HttpUtility.UrlEncode("OpenStack"));
                         string strContent = "{"appId":"","method":"","tokenId":"","data":{"userAccountId":"" + userid + ""}}";             
                         byte[] bytes = Encoding.UTF8.GetBytes(strContent);                                        
                         request.Proxy = null;
                         request.CookieContainer = cookieContainer;
                         using (dataStream = request.GetRequestStream())
                         {
                             dataStream.Write(bytes, 0, bytes.Length);
                         }           
                         SendSMSResponse = (HttpWebResponse)request.GetResponse();
                         if (SendSMSResponse.StatusCode == HttpStatusCode.RequestTimeout)
                         {
                             if (SendSMSResponse != null)
                             {
                                 SendSMSResponse.Close();
                                 SendSMSResponse = null;
                             }
                             if (request != null)
                             {
                                 request.Abort();
                             }
                             return null;
                         }
                         SendSMSResponseStream = new StreamReader(SendSMSResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                         string strRespone = SendSMSResponseStream.ReadToEnd();
                         
                         return strRespone;
                     }
                     catch (Exception ex)
                     {
                        
                         if (dataStream != null)
                         {
                             dataStream.Close();
                             dataStream.Dispose();
                             dataStream = null;
                         }
                         if (SendSMSResponseStream != null)
                         {
                             SendSMSResponseStream.Close();
                             SendSMSResponseStream.Dispose();
                             SendSMSResponseStream = null;
                         }
                         if (SendSMSResponse != null)
                         {
                             SendSMSResponse.Close();
                             SendSMSResponse = null;
                         }
                         if (request != null)
                         {
                             request.Abort();
                         }
                     }
                     finally
                     {
                         if (dataStream != null)
                         {
                             dataStream.Close();
                             dataStream.Dispose();
                             dataStream = null;
                         }
                         if (SendSMSResponseStream != null)
                         {
                             SendSMSResponseStream.Close();
                             SendSMSResponseStream.Dispose();
                             SendSMSResponseStream = null;
                         }
                         if (SendSMSResponse != null)
                         {
                             SendSMSResponse.Close();
                             SendSMSResponse = null;
                         }
                         if (request != null)
                         {
                             request.Abort();
                         }
                     }
                 }
                 return rs;
             }
    

      

      HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://localhost/xxii/cc");
                request.Method = "POST";
                request.ContentType = "application/json;charset=UTF-8";
                //JavaScriptSerializer js = new JavaScriptSerializer();
                //JK.abc cs = new JK.abc();
                //cs.c = "ccc";
                //cs.b = "bbb";
                //cs.a = "aaa";
                //cs.dx = "ddds";
                //cs.id = 44;
                //string json = js.Serialize(cs);
                //json = null;
                var stream = request.GetRequestStream();
                using (var writer = new StreamWriter(stream))
                {
                    //writer.Write(json);
                    //writer.Flush();
                }

                HttpWebResponse response = (HttpWebResponse)request.GetResponse();
                var stream2 = response.GetResponseStream();
                byte[] bt = new byte[response.ContentLength];
                stream2.Read(bt, 0, bt.Length);
                string messHeader = Encoding.UTF8.GetString(bt);
                MessageBox.Show(messHeader);

    public static string GetMobileConfByUserId(string userid)
             {
                 string rs = null;
                 if (!string.IsNullOrEmpty(userid))
                 {
                     if (string.IsNullOrEmpty(strOnLine))
                     {
                         strOnLine = ConfigurationManager.AppSettings["OnLineUrl"];
                     }
                     ServicePointManager.DefaultConnectionLimit = 300;
                     System.GC.Collect();
                     CookieContainer cookieContainer = new CookieContainer();
                     // 设置提交的相关参数 
                    HttpWebRequest request = null;
                     HttpWebResponse SendSMSResponse = null;
                     Stream dataStream = null;
                     StreamReader SendSMSResponseStream = null;
                     try
                     {
                         request = WebRequest.Create(strOnLine) as HttpWebRequest;
                         request.Method = "POST";
                         request.KeepAlive = false;
                         request.ServicePoint.ConnectionLimit = 300;
                         request.AllowAutoRedirect = true;
                         request.Timeout = 10000;
                         request.ReadWriteTimeout = 10000;
                         request.ContentType = "application/json";
                         request.Accept = "application/xml";
                         request.Headers.Add("X-Auth-Token", HttpUtility.UrlEncode("OpenStack"));
                         string strContent = "{"appId":"","method":"","tokenId":"","data":{"userAccountId":"" + userid + ""}}";             
                         byte[] bytes = Encoding.UTF8.GetBytes(strContent);                                        
                         request.Proxy = null;
                         request.CookieContainer = cookieContainer;
                         using (dataStream = request.GetRequestStream())
                         {
                             dataStream.Write(bytes, 0, bytes.Length);
                         }           
                         SendSMSResponse = (HttpWebResponse)request.GetResponse();
                         if (SendSMSResponse.StatusCode == HttpStatusCode.RequestTimeout)
                         {
                             if (SendSMSResponse != null)
                             {
                                 SendSMSResponse.Close();
                                 SendSMSResponse = null;
                             }
                             if (request != null)
                             {
                                 request.Abort();
                             }
                             return null;
                         }
                         SendSMSResponseStream = new StreamReader(SendSMSResponse.GetResponseStream(), Encoding.GetEncoding("utf-8"));
                         string strRespone = SendSMSResponseStream.ReadToEnd();
                         
                         return strRespone;
                     }
                     catch (Exception ex)
                     {
                        
                         if (dataStream != null)
                         {
                             dataStream.Close();
                             dataStream.Dispose();
                             dataStream = null;
                         }
                         if (SendSMSResponseStream != null)
                         {
                             SendSMSResponseStream.Close();
                             SendSMSResponseStream.Dispose();
                             SendSMSResponseStream = null;
                         }
                         if (SendSMSResponse != null)
                         {
                             SendSMSResponse.Close();
                             SendSMSResponse = null;
                         }
                         if (request != null)
                         {
                             request.Abort();
                         }
                     }
                     finally
                     {
                         if (dataStream != null)
                         {
                             dataStream.Close();
                             dataStream.Dispose();
                             dataStream = null;
                         }
                         if (SendSMSResponseStream != null)
                         {
                             SendSMSResponseStream.Close();
                             SendSMSResponseStream.Dispose();
                             SendSMSResponseStream = null;
                         }
                         if (SendSMSResponse != null)
                         {
                             SendSMSResponse.Close();
                             SendSMSResponse = null;
                         }
                         if (request != null)
                         {
                             request.Abort();
                         }
                     }
                 }
                 return rs;
             }
    

      如果不通过request.write()的方式向接口post数据,将request.ContentLength属性设置为0,让后去掉request.write()方法即可!

    /// <summary>
            /// 通过 WebRequest/WebResponse 类访问远程地址并返回结果,需要Basic认证;
            /// 调用端自己处理异常
            /// </summary>
            /// <param name="uri"></param>
            /// <param name="timeout">访问超时时间,单位毫秒;如果不设置超时时间,传入0</param>
            /// <param name="encoding">如果不知道具体的编码,传入null</param>
            /// <param name="username"></param>
            /// <param name="password"></param>
            /// <returns></returns>
            public static string Request_WebRequest(string uri, int timeout, Encoding encoding, string username, string password)
            {
                string result = string.Empty;
    
                WebRequest request = WebRequest.Create(new Uri(uri));
    
                if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
                {
                    request.Credentials = GetCredentialCache(uri, username, password);
                    request.Headers.Add("Authorization", GetAuthorization(username, password));
                }
    
                if (timeout > 0)
                    request.Timeout = timeout;
    
                WebResponse response = request.GetResponse();
                Stream stream = response.GetResponseStream();
                StreamReader sr = encoding == null ? new StreamReader(stream) : new StreamReader(stream, encoding);
    
                result = sr.ReadToEnd();
    
                sr.Close();
                stream.Close();
    
                return result;
            }
    
            #region # 生成 Http Basic 访问凭证 #
    
            private static CredentialCache GetCredentialCache(string uri, string username, string password)
            {
                string authorization = string.Format("{0}:{1}", username, password);
    
                CredentialCache credCache = new CredentialCache();
                credCache.Add(new Uri(uri), "Basic", new NetworkCredential(username, password));
    
                return credCache;
            }
    
            private static string GetAuthorization(string username, string password)
            {
                string authorization = string.Format("{0}:{1}", username, password);
    
                return "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(authorization));
            }
    
            #endregion
    
    basic验证的WebRequest/WebResponse
    

      

    public static string GetHttp(string url, HttpContext httpContext)
        {
            string queryString = "?";
    
            foreach (string key in httpContext.Request.QueryString.AllKeys)
            {
                queryString += key + "=" + httpContext.Request.QueryString[key] + "&";
            }
    
            queryString = queryString.Substring(0, queryString.Length - 1);
    
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url + queryString);
    
            httpWebRequest.ContentType = "application/json";
            httpWebRequest.Method = "GET";
            httpWebRequest.Timeout = 20000;
    
            //byte[] btBodys = Encoding.UTF8.GetBytes(body);
            //httpWebRequest.ContentLength = btBodys.Length;
            //httpWebRequest.GetRequestStream().Write(btBodys, 0, btBodys.Length);
    
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
            string responseContent = streamReader.ReadToEnd();
    
            httpWebResponse.Close();
            streamReader.Close();
    
            return responseContent;
        }
    
    Get方法(HttpWebRequest)
    

      

    /// <summary>
            /// 通过WebClient类Post数据到远程地址,需要Basic认证;
            /// 调用端自己处理异常
            /// </summary>
            /// <param name="uri"></param>
            /// <param name="paramStr">name=张三&age=20</param>
            /// <param name="encoding">请先确认目标网页的编码方式</param>
            /// <param name="username"></param>
            /// <param name="password"></param>
            /// <returns></returns>
            public static string Request_WebClient(string uri, string paramStr, Encoding encoding, string username, string password)
            {
                if (encoding == null)
                    encoding = Encoding.UTF8;
    
                string result = string.Empty;
    
                WebClient wc = new WebClient();
    
                // 采取POST方式必须加的Header
                wc.Headers.Add("Content-Type", "application/x-www-form-urlencoded");
    
                byte[] postData = encoding.GetBytes(paramStr);
    
                if (!string.IsNullOrEmpty(username) && !string.IsNullOrEmpty(password))
                {
                    wc.Credentials = GetCredentialCache(uri, username, password);
                    wc.Headers.Add("Authorization", GetAuthorization(username, password));
                }
    
                byte[] responseData = wc.UploadData(uri, "POST", postData); // 得到返回字符流
                return encoding.GetString(responseData);// 解码                  
            }
    
    POST方法(WebClient)
    

      

    //body是要传递的参数,格式"roleId=1&uid=2"
    //post的cotentType填写:
    //"application/x-www-form-urlencoded"
    //soap填写:"text/xml; charset=utf-8"
        public static string PostHttp(string url, string body, string contentType)
        {
            HttpWebRequest httpWebRequest = (HttpWebRequest)WebRequest.Create(url);
    
            httpWebRequest.ContentType = contentType;
            httpWebRequest.Method = "POST";
            httpWebRequest.Timeout = 20000;
    
            byte[] btBodys = Encoding.UTF8.GetBytes(body);
            httpWebRequest.ContentLength = btBodys.Length;
            httpWebRequest.GetRequestStream().Write(btBodys, 0, btBodys.Length);
    
            HttpWebResponse httpWebResponse = (HttpWebResponse)httpWebRequest.GetResponse();
            StreamReader streamReader = new StreamReader(httpWebResponse.GetResponseStream());
            string responseContent = streamReader.ReadToEnd();
    
            httpWebResponse.Close();
            streamReader.Close();
            httpWebRequest.Abort();
            httpWebResponse.Close();
    
            return responseContent;
        }
    
    POST方法(httpWebRequest)
    

      

  • 相关阅读:
    第七次
    第六次作业
    第五次作业
    第四次作业
    百度网盘生成二维码api
    【css3】--四种气泡
    纯CSS气泡框实现方法探究
    三种带箭头提示框总结实例
    纯CSS实现气泡框
    Windows 上 GitHub Desktop 的操作
  • 原文地址:https://www.cnblogs.com/xiangxiong/p/6841505.html
Copyright © 2011-2022 走看看