gastao Posted May 16, 2023 at 07:35 PM Report Share #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 Link to comment Share on other sites More sharing options...
Rui Carlos Posted May 17, 2023 at 07:36 PM Report Share #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 Link to comment Share on other sites More sharing options...
gastao Posted May 24, 2023 at 07:14 PM Author Report Share #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? Link to comment Share on other sites More sharing options...
Rui Carlos Posted May 25, 2023 at 08:34 PM Report Share #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 Link to comment Share on other sites More sharing options...
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