Jump to content

Erro em pedidos HTTP: resposestatusline


gastao

Recommended Posts

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

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

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.

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.