Gracias icktoofay, Intenté usar HttpWebRequest
y HttpWebResponse
.Cómo descargar el archivo usando la clase HttpWebRequest y HttpWebResponse (Cookies, Credenciales, etc.)
Cuando solicito URL pasando las credenciales como nombre de usuario y contraseña.
Volveré a obtener la ID de la sesión en la respuesta.
Después de obtener esa ID de sesión, Cómo seguir adelante.
El usuario autenticado se rastrea usando credenciales/cookies. Tengo la URL exacta del archivo para descargar y las credenciales. Si quiere usar Cookies lo haré. Necesito leer los datos del archivo y escribirlos/guardarlos en una ubicación especificada.
El código que estoy usando es;
string username = "";
string password = "";
string reqString = "https://xxxx.com?FileNAme=asfhasf.mro" + "?" +
"username=" + username + &password=" + password;
byte[] requestData = Encoding.UTF8.GetBytes(reqString);
string s1;
CookieContainer cc = new CookieContainer();
var request = (HttpWebRequest)WebRequest.Create(loginUri);
request.Proxy = null;
request.CookieContainer = cc;
request.Method = "POST";
HttpWebResponse ws = (HttpWebResponse)request.GetResponse();
Stream str = ws.GetResponseStream();
//ws.Cookies
//var request1 = (HttpWebRequest)WebRequest.Create(loginUri);
byte[] inBuf = new byte[100000];
int bytesToRead = (int) inBuf.Length;
int bytesRead = 0;
while (bytesToRead > 0)
{
int n = str.Read(inBuf, bytesRead,bytesToRead);
if (n==0)
break;
bytesRead += n;
bytesToRead -= n;
}
FileStream fstr = new FileStream("weather.jpg", FileMode.OpenOrCreate,
FileAccess.Write);
fstr.Write(inBuf, 0, bytesRead);
str.Close();
fstr.Close();
Gracias Ales, sí, probé el primer método y obtuve la cookie como ID de sesión y cuando asigno esa colección de cookies a la nueva solicitud web e intento de solicitar URL del archivo iehttps: //ghasghfh/filename=hasfhgfhg.mro . Cuando intento obtener la respuesta en el formulario de cadena. Los valores de cadena que obtengo son el código HTML/ViewSource de la página de inicio de sesión. Por favor, respóndeme. Realmente aprecio tu ayuda. – Vinay
Significa que realizó una descarga exitosa de la página web, pero no ha ingresado correctamente el nombre de usuario y la contraseña. Mi ejemplo (vea la línea con el comando string.Format) usa un formato de POST, que vi en el servidor con php donde quería usar mi código. Comencé con el complemento de Firefox que muestra todas las comunicaciones con el servidor, y luego hice lo mismo en mi código. Y funciona. –
Al Kepp, U derecho, puedo descargar el HTML del archivo con éxito. cualquier sugerencia donde el problema/problema persiste. ¿Hay algún cuidado extra que tomar? – Vinay