Member 8507615 Ответов: 1

Как сделать так, чтобы имя хоста в 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 и для всех внутренних запросов.

1 Ответов

Рейтинг:
1

RickZeeland

Похоже, вам нужно установить среду разработки App Studio на базе Windows:
https://infocenter.informationbuilders.com/wf80/index.jsp?topic=%2Fpubdocs%2FApp_Studio%2FRef_Guide%2Fsource%2Ftopic84.htm[^]