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:
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


0