0

Je veux créer et oublier Url en utilisant vb.net. Fondamentalement, je vais pousser une URL (juste obtenir une réponse de l'URL, ne pas afficher dans le navigateur/exécuter en arrière-plan) et oublier. Je veux pousser 10 url en même temps quand j'ai cliqué sur le bouton. Voici mon code, mais il traite toujours l'url l'url un par un.Récupérez et oubliez Url en utilisant vb.net

Private Sub BtnHit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BtnHit.Click 
Dim startp As DateTime = New DateTime(CDate(BtnStartDate.Text.ToString).Year, CDate(BtnStartDate.Text.ToString).Month, CDate(BtnStartDate.Text.ToString).Day) 
    Dim endp As DateTime = New DateTime(CDate(BtnEndDate.Text.ToString).Year, CDate(BtnEndDate.Text.ToString).Month, CDate(BtnEndDate.Text.ToString).Day) 
    Dim CurrD As DateTime = startp 

    'Call PostTo("http://localhost:8089/Process/GetDataRencanaLembur.aspx?sid=88665765746873243", "POST", "&NIP=000323971&START_DATE=18 Aug 2015&END_DATE=19 Aug 2015") 

    While (CurrD <= endp) 
     Call PostTo("http://" & My.Settings.UrlServer & "/Process/SubmitRencanaLembur.aspx?sid=" & ((DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds).ToString.Trim, "POST", "&NOREG=" & Noreg.Trim & "&Nama=" & LblNama.Text.Trim & "&DirectReport=" & LblDirectReport.Text.Trim & "&Tanggal=" & Format(CurrD, "dd MMM yyyy") & "&OTPlan=03%3A00&Reason=Robot Testing") 
     CurrD = CurrD.AddDays(1) 
    End While 
end sub 

Protected Sub PostTo(ByVal url As String, ByVal method As String, ByVal postData As String) 
    CreateLog("Start Time : " & Now.ToString("HH:mm:ss.fff")) 
    Dim stopwatch As Stopwatch = stopwatch.StartNew() 
    Dim myWebRequest As HttpWebRequest = TryCast(WebRequest.Create(url), HttpWebRequest) 
    myWebRequest.Method = method 
    Dim byteArray As Byte() = System.Text.Encoding.[Default].GetBytes(postData) 
    myWebRequest.ContentType = "application/x-www-form-urlencoded" 
    myWebRequest.ContentLength = byteArray.Length 
    Dim dataStream As System.IO.Stream = myWebRequest.GetRequestStream() 
    dataStream.Write(byteArray, 0, byteArray.Length) 
    dataStream.Close() 

    Dim myWebResponse As WebResponse = myWebRequest.GetResponse() 
    LblStatus.Text = (DirectCast(myWebResponse, HttpWebResponse)).StatusCode & " " & (DirectCast(myWebResponse, HttpWebResponse)).StatusDescription 
    dataStream = myWebResponse.GetResponseStream() 
    Dim reader As New System.IO.StreamReader(dataStream) 
    Dim responseFromServer As String = reader.ReadToEnd() 
    RichTextBox1.Text = RichTextBox1.Text & vbNewLine & responseFromServer + ":" 
    reader.Close() 
    dataStream.Close() 
    myWebResponse.Close() 
    CreateLog("End Time : " & Now.ToString("HH:mm:ss.fff")) 
    CreateLog("Parameter : " & postData & vbNewLine & "Status Code : " & LblStatus.Text & " " & stopwatch.ElapsedMilliseconds & "ms" & vbNewLine & "URL : " & url & postData & vbNewLine & "Response From Server : " & responseFromServer & vbNewLine) 
End Sub 

Répondre

0

Vous devez créer un nouveau thread dans votre boucle while:

While (CurrD <= endp) 
    Task.Factory.StartNew(Sub() 
      Call PostTo("http://" & My.Settings.UrlServer & "/Process/SubmitRencanaLembur.aspx?sid=" & ((DateTime.UtcNow - New DateTime(1970, 1, 1, 0, 0, 0)).TotalSeconds).ToString.Trim, "POST", "&NOREG=" & Noreg.Trim & "&Nama=" & LblNama.Text.Trim & "&DirectReport=" & LblDirectReport.Text.Trim & "&Tanggal=" & Format(CurrD, "dd MMM yyyy") & "&OTPlan=03%3A00&Reason=Robot Testing") 
      CurrD = CurrD.AddDays(1) 
    End Sub)  
End While 
+0

Pouvez-vous me aider s'il vous plaît, donnez-moi un exemple comment mettre en œuvre le code de fil à mon code – susiana

+0

suffit de remplacer votre boucle while avec le code que j'ai posté. –

+0

mais j'obtiens une erreur lorsque j'essaie d'Importer System.Threading.Tasks (.net version 4.5) – susiana