elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.


Tema destacado: Recuerda que debes registrarte en el foro para poder participar (preguntar y responder)


  Mostrar Mensajes
Páginas: 1 ... 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 [924] 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 ... 1253
9231  Foros Generales / Dudas Generales / Una URL me devuelve StatusCode 200 cuando en realidad es 404, ¿Porque y como?. en: 25 Mayo 2013, 17:23 pm
Hola

A ver si los entendidos en http me pueden ayudar a salir de dudas.

Fíjense en esta url: http://www.mp3crank.com/releases/12549/page/1

Fíjense especiálmente en el número 12549, el cual me lo he inventado, pero lo comento porque para testear lo siguiente que voy a explicar hay que cambiar dicho número de la url por cualquier otro número (o bueno, cualquier otra parte de la url para que tire un error 404, pero eso me ha parecido la más fácil de sugerir como referencia).

Bien, el problema es que esa url devuelve un código 404 la primera vez que intento acceder a ella (obtener la respuesta desde un lenguaje de programación), si intento obtener la respuesta una segunda vez, lo que me devolverá es un código 200 (success) SIEMPRE.

Esto es incomprensible para mi porque no sé lo suficiente a nivel web, y a la única conclusión a la que he llegado ha sido esta:

...Esto no tengo ni idea de porque sucede, imagino que el servidor detecta que se ha intentado acceder a una página que no existe, y entonces por algún extraño motivo se crea automáticamente esa página de forma temporal para devolver el código "200" las siguientes veces?, hasta ahí llega mi imaginación, no lo sé.

¿Alguien me puede explicar de forma sencilla porque un servidor primero envía error 404 y luego en todos los demás intentos devuelve un 200?, ¿Esto es algo normal?

Y lo más importante, aunque no supieran de programación, ¿Se os ocurre como puedo verificar si la página reálmente existe mediante un lenguaje de programación aunque la url me lanze un "200?,
...por ejemplo: "si Elektro, busca X cosa en los headers para verificarlo", o cosas así, cualquier información me sirve, pero no sé por donde empezar... porque la respuesta que me va a dar es un maldito "200", así que...

Gracias por leer.
9232  Programación / .NET (C#, VB.NET, ASP) / Re: ¿ Como detectar error 404 ? en: 25 Mayo 2013, 16:30 pm
Vaya que casualidad que justo cuando escribo el post encuentro la solución al primer problema... odio que me pase eso xD.

Una función que hace el try:ctach por mi, si este es el único modo de hacer las cosas... pues lo veo aceptable:

Código
  1. Public Class Form1
  2.  
  3.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  4.        Dim request As System.Net.HttpWebRequest = System.Net.HttpWebRequest.Create("http://www.mp3crank.com/releases/12548/page/1")
  5.        Dim response As System.Net.HttpWebResponse = GetHttpResponse(request)
  6.  
  7.        If response.StatusCode = System.Net.HttpStatusCode.NotFound Then
  8.            MsgBox("Error 404")
  9.        End If
  10.  
  11.    End Sub
  12.  
  13.    Public Shared Function GetHttpResponse(request As System.Net.HttpWebRequest) As System.Net.HttpWebResponse
  14.        Try
  15.            Return DirectCast(request.GetResponse(), System.Net.HttpWebResponse)
  16.        Catch ex As System.Net.WebException
  17.            If ex.Response Is Nothing OrElse ex.Status <> System.Net.WebExceptionStatus.ProtocolError Then
  18.                Throw
  19.            End If
  20.            Return DirectCast(ex.Response, System.Net.HttpWebResponse)
  21.        End Try
  22.    End Function
  23.  
  24. End Class

Pues ahora me queda por resolver el segundo problema, que me da por válida (200) páginas que reálmente no existen (404), y esto ya si que no sé donde buscarlo ni como pensar en poder solucionarlo.

Saludos!
9233  Programación / .NET (C#, VB.NET, ASP) / ¿ Como detectar error 404 ? en: 25 Mayo 2013, 16:13 pm
Hola

Tengo dos problemas con una página web.

Esta página devuelve un error 404: http://www.mp3crank.com/releases/1925/page/1

El primer problema es que necesito detectar ese error, lo he intentado mediante los "statuscode" pero a la hora de declarar la variable "response" da exception ("página no encontrada error 404"):

Código
  1.    Dim request As HttpWebRequest = HttpWebRequest.Create("http://www.mp3crank.com/releases/1925/page/1")
  2.    Dim response As HttpWebResponse = request.GetResponse()
  3.    Dim sr As StreamReader = New StreamReader(response.GetResponseStream())
  4.  
  5.    If response.StatusCode = HttpStatusCode.NotFound Then
  6.        MsgBox("Error 404")
  7.    End If

Podría hacer un simple try catch en la variable "dim response" pero esto me parece muy cutre, ...¿aunque quizás esa es la única solución?

EDITO: No puedo usar la solución del Framework 4.5, estoy usando 3.5

El segundo problema es que la primera vez que se accede a esa url devuelve un 404, pero si se intenta acceder una segunda vez devolverá el código 200, así que el código de arriba, aunque me funcionase para detectar el error 404 sólamente me valdría para la primera vez (aunque si se accede desde el navegador seguirá devolviendo un 404)...

...Esto no tengo ni idea de porque sucede, imagino que el servidor detecta que se ha intentado acceder a una página que no existe, y entonces por algún extraño motivo se crea automáticamente esa página de forma temporal para devolver el código "200" las siguientes veces?, hasta ahí llega mi imaginación, no lo sé.

El caso es que la url que he puesto de enlace, si se testea más de una vez dará "200" pero en realidad no existe, es un "404", así que tengo dos problemas en uno y para hacer mis pruebas tengo que estar modificando cada vez el número "1925" de la url que os he dicho, por cualquier otro año entre "1XXX-1969", es un coñazo, jeje.

A ver si alguien me puede ayudar,
Gracias.

9234  Sistemas Operativos / Windows / [APORTE] Archivo de instalación desatendida para Windows 8 Core en: 24 Mayo 2013, 22:29 pm
Aquí os dejo este archivo de instalación desatendida de Windows 8 que he hecho con WSIM (Windows System Image Manager),
Funciona de maravilla, lo único que requiere es elegir el disco donde se desea instalar Windows 8, TODO lo demás lo he dejado preconfigurado y no requiere más intervención que lo que acabo de comentar.

El nombre de usuario por defecto es "Administrador".
La red por defecto es "Hogar".
La hora, el idioma y esas cosas está configurado para Español de España.

Posibles valores que quieran modificar:
- Nombre de la organización
- Nombre del PC
- Nombre de usuario
- La clave (Si disponen de una clave legal)

...Es fácil de modificar, solo hay que buscar el valor correspondiente en este archivo de aquí abajo, y cambiar el valor.

El archivo lo guardan como "AutoUnattend.xml" y lo colocan en el DVD de Windows 8 en la carpeta principal junto al "setup.exe".

PD: No lo he testeado con Windows 8 PRO.

Código
  1. <?xml version="1.0" encoding="utf-8"?>
  2. <unattend xmlns="urn:schemas-microsoft-com:unattend">
  3.    <settings pass="windowsPE">
  4.        <component name="Microsoft-Windows-International-Core-WinPE" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  5.            <UserLocale>es-ES</UserLocale>
  6.            <UILanguageFallback>es-ES</UILanguageFallback>
  7.            <UILanguage>es-ES</UILanguage>
  8.            <SystemLocale>es-ES</SystemLocale>
  9.            <InputLocale>es-ES</InputLocale>
  10.        </component>
  11.        <component name="Microsoft-Windows-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  12.            <Display>
  13.                <HorizontalResolution>1920</HorizontalResolution>
  14.                <VerticalResolution>1080</VerticalResolution>
  15.                <ColorDepth>32</ColorDepth>
  16.            </Display>
  17.            <UserData>
  18.                <ProductKey>
  19.                    <WillShowUI>Never</WillShowUI>
  20.                    <Key>FB4WR-32NVD-4RW79-XQFWH-CYQG3</Key>
  21.                </ProductKey>
  22.                <AcceptEula>true</AcceptEula>
  23.                <Organization>Elektro Studios</Organization>
  24.                <FullName>Christian Soriano</FullName>
  25.            </UserData>
  26.            <EnableNetwork>true</EnableNetwork>
  27.            <EnableFirewall>true</EnableFirewall>
  28.        </component>
  29.    </settings>
  30.    <settings pass="specialize">
  31.        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  32.            <AutoLogon>
  33.                <Enabled>true</Enabled>
  34.                <LogonCount>1</LogonCount>
  35.                <Username>Administrator</Username>
  36.            </AutoLogon>
  37.            <ComputerName>Elektro-PC</ComputerName>
  38.            <ProductKey>FB4WR-32NVD-4RW79-XQFWH-CYQG3</ProductKey>
  39.            <RegisteredOrganization>Elektro Studios</RegisteredOrganization>
  40.            <ShowWindowsLive>false</ShowWindowsLive>
  41.            <TimeZone>Romance Standard Time</TimeZone>
  42.            <WindowsFeatures>
  43.                <ShowInternetExplorer>false</ShowInternetExplorer>
  44.                <ShowMediaCenter>false</ShowMediaCenter>
  45.                <ShowWindowsMail>false</ShowWindowsMail>
  46.                <ShowWindowsMediaPlayer>false</ShowWindowsMediaPlayer>
  47.            </WindowsFeatures>
  48.        </component>
  49.    </settings>
  50.    <settings pass="oobeSystem">
  51.        <component name="Microsoft-Windows-Shell-Setup" processorArchitecture="amd64" publicKeyToken="31bf3856ad364e35" language="neutral" versionScope="nonSxS" xmlns:wcm="http://schemas.microsoft.com/WMIConfig/2002/State" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  52.            <OOBE>
  53.                <HideEULAPage>true</HideEULAPage>
  54.                <SkipUserOOBE>true</SkipUserOOBE>
  55.                <SkipMachineOOBE>true</SkipMachineOOBE>
  56.                <ProtectYourPC>3</ProtectYourPC>
  57.                <NetworkLocation>Home</NetworkLocation>
  58.                <HideWirelessSetupInOOBE>true</HideWirelessSetupInOOBE>
  59.                <HideOnlineAccountScreens>true</HideOnlineAccountScreens>
  60.                <HideOEMRegistrationScreen>true</HideOEMRegistrationScreen>
  61.                <HideLocalAccountScreen>true</HideLocalAccountScreen>
  62.            </OOBE>
  63.            <VisualEffects>
  64.                <FontSmoothing>On</FontSmoothing>
  65.            </VisualEffects>
  66.        </component>
  67.    </settings>
  68.    <cpi:offlineImage cpi:source="wim:c:/users/administrador/desktop/Elektro Win8-Core-Mod/x64/sources/install.wim#Windows 8" xmlns:cpi="urn:schemas-microsoft-com:cpi" />
  69. </unattend>
  70.  
9235  Programación / Scripting / Re: [BATCH] Comparación de textos en: 24 Mayo 2013, 22:13 pm
Código:
FC "1.txt" "2.txt"
Código:
Comparando archivos 1.txt y 2.TXT
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****



Código:
FC "1.txt" "2.txt" | MORE +1
Código:
***** 1.txt
***** 2.TXT
usuario1
usuario2
*****



Código:
FC "1.txt" "2.txt"  | MORE +1 | findstr /V "^\*\*\*\*\* .+$" | Findstr "."
Código:
usuario1
usuario2

Saludos
9236  Programación / .NET (C#, VB.NET, ASP) / Re: Cronometro regresivo en: 24 Mayo 2013, 18:16 pm
Veo que el codigo es muy diferente

Sólamente he usado los códigos de ejemplo que te puse, con alguna que otra modificación.

El proyecto está hecho en VS2012, VB.NET

Saludos
9237  Sistemas Operativos / Windows / Re: Activación de Windows 8 Core edition (...de forma legal, o casi...) en: 24 Mayo 2013, 17:44 pm
¿Y eso?

Pues que los milagros suceden y el crack perfecto existe xD, ahí dejo la cosa!

Pueden cerrar este tema ya si quieren

un saludo
9238  Programación / .NET (C#, VB.NET, ASP) / Re: Cronometro regresivo en: 24 Mayo 2013, 17:36 pm
vamos, que no es dificil SyntaxError404

Pero si empeizas a usar if's anidados te puedes acabar liando.

Aquí tienes el source del siguiente form: http://elektrostudios.tk/WindowsApplication3.zip

Código
  1. Public Class Form1
  2.  
  3.    Dim Run_Sound As Boolean = False
  4.    Dim Run_Program As Boolean = False
  5.  
  6.    Dim TotalTime As Long
  7.    Dim Time_Elapsed_Watch As New Stopwatch
  8.    Dim Time_Remaining_Span As New TimeSpan()
  9.    Dim WithEvents CountDown_Timer As New Timer
  10.  
  11.    Dim TimeIsOut As Boolean = False
  12.    Dim Want_To_Stop As Boolean
  13.  
  14.  
  15. #Region " Form "
  16.  
  17.    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
  18.        RadioButton1.Tag = "sound"
  19.        RadioButton2.Tag = "program"
  20.    End Sub
  21.  
  22.    Private Sub RadioButtons_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles _
  23.                                                                                           RadioButton1.Click, _
  24.                                                                                           RadioButton2.Click
  25.        Select Case sender.tag.tolower
  26.            Case "sound" : Run_Sound = True : Run_Program = False
  27.            Case "program" : Run_Program = True : Run_Sound = False
  28.            Case Else : Throw New Exception("Wrong tagname")
  29.        End Select
  30.  
  31.    End Sub
  32.  
  33.    Private Sub NumericUpDown1_ValueChanged(sender As Object, e As EventArgs) Handles _
  34.                                                                      NumericUpDown1.ValueChanged, _
  35.                                                                      NumericUpDown2.ValueChanged, _
  36.                                                                      NumericUpDown3.ValueChanged
  37.  
  38.        TotalTime = (NumericUpDown1.Value * 3600000) _
  39.                  + (NumericUpDown2.Value * 60000) _
  40.                  + (NumericUpDown3.Value * 1000)
  41.  
  42.    End Sub
  43.  
  44.    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  45.        TimeIsOut = False
  46.        Want_To_Stop = False
  47.        CountDown_Start()
  48.        While Not TimeIsOut : Application.DoEvents() : End While
  49.        If Not Want_To_Stop Then Time_Success()
  50.    End Sub
  51.  
  52.    Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click
  53.        Want_To_Stop = True
  54.    End Sub
  55.  
  56. #End Region
  57.  
  58. #Region " Procedures "
  59.  
  60.    Private Sub CountDown_Start()
  61.        Time_Remaining_Span = TimeSpan.FromMilliseconds(TotalTime + 1000)
  62.        Time_Elapsed_Watch.Start()
  63.        CountDown_Timer.Start()
  64.    End Sub
  65.  
  66.    Private Sub CountDown_Timer_Tick(sender As Object, e As EventArgs) Handles CountDown_Timer.Tick
  67.  
  68.        Dim TimeRemaining As TimeSpan = Time_Remaining_Span - Time_Elapsed_Watch.Elapsed
  69.  
  70.        If Want_To_Stop Then TimeIsOut = True : Time_Elapsed_Watch.Reset() : CountDown_Timer.Stop()
  71.  
  72.        Try
  73.            NumericUpDown1.Value = String.Format("{0:00}", CLng(Math.Floor(TimeRemaining.TotalHours)) Mod 999999999999999999)
  74.            NumericUpDown2.Value = String.Format("{0:00}", CLng(Math.Floor(TimeRemaining.TotalMinutes)) Mod 60)
  75.            NumericUpDown3.Value = String.Format("{0:00}", CLng(Math.Floor(TimeRemaining.TotalSeconds)) Mod 60)
  76.        Catch
  77.            TimeIsOut = True
  78.            Time_Elapsed_Watch.Reset()
  79.            CountDown_Timer.Stop()
  80.        End Try
  81.  
  82.    End Sub
  83.  
  84.    Private Sub Time_Success()
  85.        If Run_Sound Then
  86.            MsgBox("Reproducir sonido")
  87.        ElseIf Run_Program Then
  88.            MsgBox("Ejecutar proceso")
  89.        Else
  90.            Throw New Exception("Wrong option")
  91.        End If
  92.    End Sub
  93.  
  94. #End Region
  95.  
  96. End Class

Saludos.
9239  Programación / .NET (C#, VB.NET, ASP) / Re: Cronometro regresivo en: 24 Mayo 2013, 17:00 pm
gracias el codigo que me das Electro.. tal parece no funciona...

En ningúna parte de tú código veo que hayas usado el código que te he mostrado, tampoco veo que hayas declarado las variables de mi ejemplo.

PD: Aunque tampoco voy a testear un código sin que me des detalles de porque "no funciona"

Saludos!
9240  Programación / Programación General / Re: Con cual Empezar a programar(principiante) en: 24 Mayo 2013, 16:49 pm
si le gusta la sintaxis de C/C++, pues que aprenda C/C++, C# no es superior, como das a entender.
Está bien que lo aclares, no sé tanto de C# hasta el punto de saber eso,
pero de todas formas mi comentario trataba sobre en la diferencia entre "nuevo y antiguo", "actual y obsoleto", esa es la definición que le quería dar a "obsoleto".

¿Para que aprender a escribir con pluma cuando existe el bolígrafo?

Saludos!
Páginas: 1 ... 909 910 911 912 913 914 915 916 917 918 919 920 921 922 923 [924] 925 926 927 928 929 930 931 932 933 934 935 936 937 938 939 ... 1253
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines