gastao Posted May 16, 2023 at 07:35 PM Report #630959 Posted May 16, 2023 at 07:35 PM Preciso de uma ajuda, quando estou autenticando um json pela segunda vez dá o seguinte erro: system.net.webexception:"O servidor executou uma violação de protocolo. Section=resposestatusline' alguém pode me ajudar? Eu tenho a seguinte função: Public Function Auth(ByVal json As String, ByVal http As String) As String Dim client As WebClientComTimeout = New WebClientComTimeout() client.Encoding = Encoding.UTF8 client.Headers(HttpRequestHeader.ContentType) = "application/json" Return client.UploadString(New Uri(http), "POST", json) End Function
Rui Carlos Posted May 17, 2023 at 07:36 PM Report #630969 Posted May 17, 2023 at 07:36 PM Parece que estás a usar bibliotecas não standard (WebClientComTimeout?), pelo que será difícil alguém conseguir ajudar. Rui Carlos Gonçalves
gastao Posted May 24, 2023 at 07:14 PM Author Report #631083 Posted May 24, 2023 at 07:14 PM Em 17/05/2023 às 20:36, Rui Carlos disse: Parece que estás a usar bibliotecas não standard (WebClientComTimeout?), pelo que será difícil alguém conseguir ajudar. é uma função para me aumentar o timeout apenas, mas fazendo de forma normal, tenho estas duas funções onde me faz a autenticação 'funçao de autenticaçao request JSON Public Function Auth(ByVal json As String, ByVal http As String) As String Try Dim client As WebClient = New WebClient() client.Encoding = Encoding.UTF8 client.Headers(HttpRequestHeader.ContentType) = "application/json" Return client.UploadString(New Uri(http), "POST", json) Catch ex As Exception End Try End Function 'função de autetincaçao Public Function tokenreturn() Dim json = "{ ""user"": { ""nif"": """ & nif & """, ""nome"": """ & user & """, ""password"": """ & password & """, ""loja"": """ & loja & """ } }" authzs = Auth(json, _apiHTTPS) Dim jObject As JObject = JObject.Parse(auth) Dim jResponse As JToken = jObject("Response") Dim jContent As JToken = jResponse("Content") Dim jAuthHash As JToken = jContent("auth_hash") token = jAuthHash End Function ao fazer o seguinte código, a terceira vez que ele corre, ele na terceira vez vem com autenticação vazia, não me faz sentido está me a ir buscar 200 de cada vez Call tokenreturn() While (a < 999909) Dim json = "{ ""auth_hash"":""" & token & """, ""client"": { ""condition"": ""codigo > 0 "", ""limit"": 200, ""offset"": " & a & " } }" a = a + 200 auth = Auth(json, _Clients) Dim jObjectsup As JObject = JObject.Parse(Auth(json, _Clients)) Dim jResponsesup As JToken = jObjectsup("Response") Dim jContentsup As JToken = jResponsesup("Content") Dim Jclient As JToken = jContentsup("client") client = Jclient.ToString End While alguém me consegue ajudar nesse sentido?
Rui Carlos Posted May 25, 2023 at 08:34 PM Report #631101 Posted May 25, 2023 at 08:34 PM De onde vem o resposestatusline? Não uso VB, nem .Net, mas isso parece vindo de código não standard. É erro é gerado no teu código, ou é o erro devolvido pelo servidor? Se vier do servidor, pode ser útil efectuar os pedidos com um cliente como o curl ou o httpie. Se o problema só ocorre no 2º pedido, pode valer a pena verificar se estás a usar o Keep Alive, e em caso positivo, desligá-lo. Rui Carlos Gonçalves
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now