Как сделать так, чтобы имя хоста в HTTP запросы WebRequest сделать?
Я пытаюсь создать HTTP-доступ к стороннему приложению. Я могу сделать первый звонок. Когда я проверяю активность с помощью fiddler, первоначальный запрос проходит нормально. Но этот URL-адрес внутренне вызывает другой URL-адрес, который имеет ссылочный путь. Для ссылочного пути он использует http://localhost:56364 как хозяин вместо того, чтобы http://fmiswebfocus.
Как я могу это исправить?
Что я уже пробовал:
Вот мой код. Я также предоставил некоторую информацию от скрипача
HttpWebRequest request2; HttpWebResponse response2; Stream webStream2; String webResponse2 = string.Empty; string reportURL = "http://fmiswebfocus/ibi_apps/bip/portal/ContPerfTSOPROD"; request2 = (HttpWebRequest)WebRequest.Create(reportURL); Uri u1 = new Uri(reportURL); System.Net.CookieContainer cookies1 = new System.Net.CookieContainer(); cookies1.Add(u1, JSESSION); request2 = (HttpWebRequest)HttpWebRequest.Create(u1); request2.Method = "GET"; request2.KeepAlive = true; request2.CookieContainer = new CookieContainer(); request2.CookieContainer = cookies1; request2.Host = "fmiswebfocus"; response2 = (HttpWebResponse)request2.GetResponse();
Вот вывод от fiddler для первоначального запроса
GET http://fmiswebfocus/ibi_apps/bip/portal/ContPerfTSOPROD HTTP/1.1 Accept:text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9 User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; Touch; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Referer: http://fmiswebfocus Host: fmiswebfocus Cookie: JSESSIONID=D90F71485CD25E3CAD1C586799D896CC Here is the body of the response for this request <body> <script type="text/javascript">application.start("/ibi_apps/bindows", "/ibi_apps/tools/portal/resources/markup/wfbiportalrun.jsp?&ViewID=VIEWROOT-K5YAH5ZC10LN8VYT2C9233&ViewName=ContPerfTSOPROD&ViewTitle=Cont%2BPerf%2BTSO%2BPROD&ViewPath=IBFS%253A%252FBIP%252FPortals%252FContPerfTSOPROD&SessionTimeout=7200000")</script> </body> Here is the next request (happening internally) based on previous response. <pre>GET http://localhost:56364/ibi_apps/bindows/css/bimain.css HTTP/1.1 Accept: */* Referer: http://localhost:56364/Default.aspx?ID=MDOTHQ\NSUBRAMANIAN Accept-Language: en-US User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; WOW64; Trident/7.0; Touch; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729) Accept-Encoding: gzip, deflate Host: localhost:56364 Connection: Keep-Alive Cookie: CMDBAuthCookie=891623DD81BBE3FE4F6D8E7535ACB
Я получаю ответ как
HTTP/1.1 404 Not Foundпотому что хост теперь изменился на localhost:56364. Я хочу, чтобы хост оставался fmiswebfocus и для всех внутренних запросов.