Visual Basic.NET - WebClient UploadData Asynch o httWebClient

   
Vista:

WebClient UploadData Asynch o httWebClient

Publicado por Pablo (1 intervención) el 25/06/2017 05:48:06
Enviarme una alerta | Editar | Eliminar | Cambio de tipo
Question
No puede votar su propia entrada
0
Hola, tengo una aplicación que consume un servicio web, utilizo el objeto webclient y hago un pos con el metodo uploaddata, el problema es que cuando el servicio está caido o no hay red se queda esperando mucho tiempo así que necesito ponerle un timeout.

Tengo entendido que el objeto httpwebclient tiene time out o que lo puedo hacer por el mismo objeto webclient pero con el metodo uploaddataasynch pero no le encuentro la vuelta y no hay un ejemplo completo porque una vez que envío los datos necesito recuperar la respuesta y no encuentro como. Me pueden dar una mano?

Acá les copio el codigo que tengo actualmente funcionando:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
Public Function MakeRequest(pBaseUrl As String, pMetodo As String, pToken As String, pJson As String) As MktApiResponse
 
        Try
            Dim request As New WebClient
            request.Headers.Add("content-type", "application/json")
            request.Headers.Add("Authorization", "Basic " & pToken)
            If Strings.InStrRev(pBaseUrl, "/") = 1 Then
                request.BaseAddress = pBaseUrl
            Else
                request.BaseAddress = pBaseUrl & "/"
            End If
 
            Dim response As String = Encoding.ASCII.GetString(request.UploadData(pMetodo, Encoding.Default.GetBytes(pJson)))
            Dim js As New JavaScriptSerializer()
            Dim ApiResponse As MktApiResponse = js.Deserialize(Of MktApiResponse)(response)
 
            Return ApiResponse
 
        Catch ex As Exception
            Dim BadApiResponse As New MktApiResponse
            BadApiResponse.Message = ex.Message
            BadApiResponse.HasError = True
            BadApiResponse.Code = -1
            Return BadApiResponse
        End Try
 
    End Function
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder