我制作了一个发送HTTP-webrequests的程序。
为了保护这些请求的安全,我希望能够定义一个IP,通过该IP发送请求。 因此,如果默认退出不起作用,请求应通过另一个退出发送。
我尝试过使用IPEndPoint和套接字,但不知怎的,它无法正常工作。
到目前为止,这是我的代码
public Response ExecuteRequest(RequestData requestData, NetworkAddress exit) {
Tracer.Info("Versuche Request über HTTP abzusetzen.");
if (!PrepareIpEndPoint(Address, exit)) {
return null;
}
Address = new Uri(PlaceholderReplacer.ReplacePlaceholders(Address.ToString(), requestData));
return RequestExecutor.ExecuteRequest(Address);
}
private bool PrepareIpEndPoint(Uri url, NetworkAddress exit) {
Tracer.Debug(string.Format("Setze den IP-Endpoint auf{0}", exit));
var ipEndPoint = new IPEndPoint(IPAddress.Parse(exit.Address), 0);
var tempSocket = new Socket(ipEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
tempSocket.Bind(ipEndPoint);
tempSocket.Connect(ipEndPoint);
return tempSocket.Connected;
}
上面的代码抛出了SocketExceptions。
非常感谢任何想法。
谢谢,乔希
答案 0 :(得分:0)
删除此行:(用于打开接受客户端的端口)
=IIF(Parameters!Month.Value<>1,MonthName(Parameters!Month.Value-1),"December")
您希望通过以下方式连接到服务器来充当客户端:
tempSocket.Bind(ipEndPoint);
你真的确定要连接到端口零,我很确定这不是一个有效的选择。 (标准HTTP = 80,HTTPS = 443)
tempSocket.Connect(ipEndPoint);