//配置多个IP命名
using System.Net;
//***************************************************************************
/// <summary> /// 通过设置这个属性,可以在发出连接的时候绑定客户端发出连接所使用的IP地址。 /// </summary> /// <param name="servicePoint"></param> /// <param name="remoteEndPoint"></param> /// <param name="retryCount"></param> /// <returns></returns> public static IPEndPoint BindIPEndPointCallback(ServicePoint servicePoint, IPEndPoint remoteEndPoint, int retryCount) { return new IPEndPoint(IPAddress.Parse("192.168.1.1") , 0);//端口号 } /// <summary> /// 一个服务器上面配置多个IP 固定出网IP /// </summary> public static void MakeRequest() { HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://www.baidu.com"); //设置本地的出口ip和端口 request.ServicePoint.BindIPEndPointDelegate = new BindIPEndPoint(BindIPEndPointCallback); if (ServicePointManager.DefaultConnectionLimit < 10) { ServicePointManager.DefaultConnectionLimit = 10; } //req.ServicePoint.ConnectionLimit=int.Max; //允许最大连接数 HttpWebResponse response = (HttpWebResponse)request.GetResponse(); response.ToString(); }
HttpWebRequest的详细方法二:
System.Net.HttpWebRequest myRequest = null; System.Net.HttpWebResponse myResponse = null; Stream reqStream = null; Stream resStream = null; string signkey = "", url = ""; string sdateStr = DateTime.Now.AddDays(-6).ToString("yyyyMMdd") + "000001"; try { signkey = XH_ChannelKey;//key url = XH_ChannelUrl; //接口地址 url += "fromDate=" + sdateStr; url += "&version=1.4";//版本号 url += "&hmac=" + MD5Encrypt(signkey + sdateStr + "1.4"); //想服务器端发送请求,获取订单信息 myRequest = System.Net.WebRequest.Create(url) as System.Net.HttpWebRequest; //--------------------- c#中HttpWebRequest使用Proxy实现指定IP的域名请求 --------------------------------- //需要使用Proxy和其配置 (代理ip) ////System.Net.WebProxy proxy = new System.Net.WebProxy("115.238.128.138", 80); ////myRequest.Proxy = proxy; //------------------------------------------------------ myRequest.Timeout = 1000 * 60 * 1;//1分钟超时 1 minutes timeout myRequest.Method = "POST"; myResponse = myRequest.GetResponse() as System.Net.HttpWebResponse; Stream myResponseStream = myResponse.GetResponseStream(); StreamReader myStreamReader; myStreamReader = new StreamReader(myResponseStream, System.Text.Encoding.GetEncoding("utf-8")); //post返回的数据 string receiveData = myStreamReader.ReadToEnd(); myStreamReader.Close(); myResponseStream.Close(); } catch (Exception ex) { string stacktrace = ex.StackTrace;//获得详细的错误位置 string errpoint = stacktrace.Substring(stacktrace.IndexOf("位置"), stacktrace.Length - stacktrace.IndexOf("位置")); Common.WriteTextLog("Error","", ex.Message + Environment.NewLine + errpoint); } finally { if (resStream != null) { resStream.Close(); } if (reqStream != null) { reqStream.Close(); } if (myResponse != null) { myResponse.Close(); } if (myRequest != null) { myRequest.Abort(); } ////特别留意这句Sleep的调用!! System.Threading.Thread.Sleep(16); }