Problem mit Net.Webclient

  • VB.NET

Es gibt 25 Antworten in diesem Thema. Der letzte Beitrag () ist von Asana.

    Bekomme merkwürdigerweise mittlerweile immer folgende Fehlermeldung : "Der Remoteserver hat einen Fehler zurückgegeben: (500) Interner Serverfehler".
    Habe es mal mit einem simplen WebClient.Downloadstring versucht und da kommt leider das selbe bei raus, am Code habe ich nichts verändert.
    Hat jemand ne Idee woran das liegen könnte?

    Hier nochmal das genaue Ausnahmedetail:

    Spoiler anzeigen
    System.Net.WebException wurde nicht behandelt.
    HResult=-2146233079
    Message=Der Remoteserver hat einen Fehler zurückgegeben: (500) Interner Serverfehler.
    Source=System
    StackTrace:
    bei System.Net.HttpWebRequest.GetResponse()
    bei BMAH.Form1.Button3_Click(Object sender, EventArgs e) in C:\Users\*******\***********\Form1.vb:Zeile 502.
    bei System.Windows.Forms.Control.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnClick(EventArgs e)
    bei System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
    bei System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
    bei System.Windows.Forms.Control.WndProc(Message& m)
    bei System.Windows.Forms.ButtonBase.WndProc(Message& m)
    bei System.Windows.Forms.Button.WndProc(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
    bei System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
    bei System.Windows.Forms.NativeWindow.DebuggableCallback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
    bei System.Windows.Forms.UnsafeNativeMethods.DispatchMessageW(MSG& msg)
    bei System.Windows.Forms.Application.ComponentManager.System.Windows.Forms.UnsafeNativeMethods.IMsoComponentManager.FPushMessageLoop(IntPtr dwComponentID, Int32 reason, Int32 pvLoopData)
    bei System.Windows.Forms.Application.ThreadContext.RunMessageLoopInner(Int32 reason, ApplicationContext context)
    bei System.Windows.Forms.Application.ThreadContext.RunMessageLoop(Int32 reason, ApplicationContext context)
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.OnRun()
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.DoApplicationModel()
    bei Microsoft.VisualBasic.ApplicationServices.WindowsFormsApplicationBase.Run(String[] commandLine)
    bei BMAH.My.MyApplication.Main(String[] Args) in :Zeile 81.
    bei System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
    bei System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
    bei Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
    bei System.Threading.ThreadHelper.ThreadStart_Context(Object state)
    bei System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
    bei System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
    bei System.Threading.ThreadHelper.ThreadStart()
    InnerException:
    Welcher Code steht in

    Asana schrieb:

    Zeile 502
    :?:
    Poste mal die ganze Prozedur und die URL, um das Problem reproduzieren zu können.
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!

    VB.NET-Quellcode

    1. TextBox2.Text = (wc.DownloadString("https://www.tradeskillmaster.com/black-market?realm=US-aegwynn"))



    bzw.

    VB.NET-Quellcode

    1. Dim httpRequest As HttpWebRequest = HttpWebRequest.Create("https://www.tradeskillmaster.com/black-market?realm=US-aegwynn")
    2. Dim httpResponse As HttpWebResponse = httpRequest.GetResponse()
    3. Dim reader As StreamReader = New StreamReader(httpResponse.GetResponseStream)
    4. Dim httpContent As String = reader.ReadToEnd
    5. TextBox2.Text = httpContent
    Hi.

    1. Verwende immer Option Strict On für deine Projekte in VB.NET
    2. Die URL hat keinen GET Parameter (also alles hinter dem ? ist überflüssig.)
    3. Die Lösung ist das Setzen eines UserAgents:

    VB.NET-Quellcode

    1. httpRequest.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/50.0.2661.94 Safari/537.36";
    Das ist meine Signatur und sie wird wunderbar sein!
    @Asana Gib Deinem Projekt Option Strict On und schreibe den Code auf die korrekten Datentypen um:

    VB.NET-Quellcode

    1. Dim httpRequest As HttpWebRequest = CType(HttpWebRequest.Create("https://www.tradeskillmaster.com/black-market?realm=US-aegwynn"), HttpWebRequest)
    2. Dim httpResponse As HttpWebResponse = CType(httpRequest.GetResponse(), HttpWebResponse)
    3. Dim reader As StreamReader = New StreamReader(httpResponse.GetResponseStream)
    4. Dim httpContent As String = reader.ReadToEnd
    5. TextBox2.Text = httpContent
    Der Server will so nicht mit Dir reden.
    Dies hier funktioniert, dazu musst Du Dir einen WebBrowser auf die Form ziehen:

    VB.NET-Quellcode

    1. WebBrowser1.Navigate("https://www.tradeskillmaster.com/black-market?realm=US-aegwynn")
    Falls Du diesen Code kopierst, achte auf die C&P-Bremse.
    Jede einzelne Zeile Deines Programms, die Du nicht explizit getestet hast, ist falsch :!:
    Ein guter .NET-Snippetkonverter (der ist verfügbar).
    Programmierfragen über PN / Konversation werden ignoriert!