JsonParser nao tras nada

Pessoal bom dia,
Preciso de uma ajuda de de vocês meio no desespero.

tenho um metodo que lê uma url e retorna em json. Ate ontem estava funcionando perfeitamente… porem hoje nao tras mas nenhum informação. O mais estranho é que se eu utilizo a url direto no navegador… esta funcionando certinho… Sera que pode ser alguma coisa presa em cache no java? pq o metodo acreito eu que esta correto.

segue o codigo:
public final void importaFuncionariosEmpresa() {

    System.err.println("cheguei");
    JSONParser parser = new JSONParser();

    try {
        //EXPORTA DADOS EMPRESAS
        String url
              = "https://www.soc.com.br/WebSoc/exportadados?parametro={'empresa':'366177','codigo':'7795','chave':'f05401393116808b1049','tipoSaida':'json','empresaTrabalho':'383788'}";

        URL oracle = new URL(url); // URL to Parse
        System.err.println("url: "+ url);
        URLConnection yc = oracle.openConnection();

        try (BufferedReader in = new BufferedReader(new InputStreamReader(yc.getInputStream(), "Cp1252"))) {

            String inputLine;
            while ((inputLine = in.readLine()) != null) {
            System.err.println("inputLine: "+ inputLine);
                JSONArray a = (JSONArray) parser.parse(inputLine);
                System.err.println("a: "+ a);
                // Loop through each item
                for (Object o : a) {
                    JSONObject percorre = (JSONObject) o;
                    System.err.println("o: "+ o);
                    String CODIGOEMPRESA = (String) percorre.get("CODIGOEMPRESA");
                    String NOMEEMPRESA = (String) percorre.get("NOMEEMPRESA");
                    String CODIGO = (String) percorre.get("CODIGO");
                    String NOME = (String) percorre.get("NOME");
                    String CODIGOUNIDADE = (String) percorre.get("CODIGOUNIDADE");
                    String NOMEUNIDADE = (String) percorre.get("NOMEUNIDADE");
                    String CODIGOSETOR = (String) percorre.get("CODIGOSETOR");
                    String NOMESETOR = (String) percorre.get("NOMESETOR");
                    String CODIGOCARGO = (String) percorre.get("CODIGOCARGO");
                    String NOMECARGO = (String) percorre.get("NOMECARGO");
                    String CBOCARGO = (String) percorre.get("CBOCARGO");
                    String MATRICULAFUNCIONARIO = (String) percorre.get("MATRICULAFUNCIONARIO");
                    String CPFFUNCIONARIO = (String) percorre.get("CPFFUNCIONARIO");
                    String SITUACAO = (String) percorre.get("SITUACAO");
                    String DATA_NASCIMENTO = (String) percorre.get("DATA_NASCIMENTO");
                    String DATA_ADMISSAO = (String) percorre.get("DATA_ADMISSAO");
                    String DATA_DEMISSAO = (String) percorre.get("DATA_DEMISSAO");
                    String ENDERECO = (String) percorre.get("ENDERECO");
                    String NUMERO_ENDERECO = (String) percorre.get("NUMERO_ENDERECO");
                    String BAIRRO = (String) percorre.get("BAIRRO");
                    String UF = (String) percorre.get("UF");

                    System.out.println(" LISTANDO FUNCIONARIOS: \n"
                            + "\n CODIGOEMPRESA       : " + CODIGOEMPRESA
                            + "\n NOMEEMPRESA         : " + NOMEEMPRESA
                            + "\n CODIGO              : " + CODIGO
                            + "\n NOME                : " + NOME
                            + "\n CODIGOUNIDADE       : " + CODIGOUNIDADE
                            + "\n NOMEUNIDADE         : " + NOMEUNIDADE
                            + "\n CODIGOSETOR         : " + CODIGOSETOR
                            + "\n NOMESETOR           : " + NOMESETOR
                            + "\n CODIGOCARGO         : " + CODIGOCARGO
                            + "\n NOMECARGO           : " + NOMECARGO
                            + "\n CBOCARGO            : " + CBOCARGO
                            + "\n MATRICULAFUNCIONARIO: " + MATRICULAFUNCIONARIO
                            + "\n CPFFUNCIONARIO      : " + CPFFUNCIONARIO
                            + "\n SITUACAO            : " + SITUACAO
                            + "\n DATA_NASCIMENTO     : " + DATA_NASCIMENTO
                            + "\n DATA_ADMISSAO       : " + DATA_ADMISSAO
                            + "\n DATA_DEMISSAO       : " + DATA_DEMISSAO
                            + "\n ENDERECO            : " + ENDERECO
                            + "\n NUMERO_ENDERECO     : " + NUMERO_ENDERECO
                            + "\n BAIRRO              : " + BAIRRO
                            + "\n UF                  : " + UF
                            + "\n****************************************");

                }
            }
        }
    } catch (FileNotFoundException e) {
    } catch (IOException | ParseException e) {
    }
}

desde ja agradeço

Boa tarde amigo

Parece bobagem mais a sua url está com “https” e para usar esse serviço é necessário colocar um certificado válido na comunicação coloque “http” que o serviço será alcançado, porém nos parâmetros existem parâmetros ilegais, funciona no navegador pq o mesmo traduz os caracteres. Tomei a liberdade escrever um código mais simples com a url que você deve usar para usar o serviço:

 import com.google.gson.Gson;
 import io.github.openunirest.http.HttpResponse;
 import io.github.openunirest.http.Unirest;

 public void importaFuncionariosTest() {
    try {
        String url = "http://www.soc.com.br/WebSoc/exportadados?parametro=%7Bempresa:366177,codigo:7795,chave:f05401393116808b1049,tipoSaida:json,empresaTrabalho:383788%7D";
        HttpResponse<String> json = Unirest.post(url).asString();
        Gson g = new Gson();
        List<Funcionario> funcionarios = g.fromJson(json.getBody(), new TypeToken<List<Funcionario>>() {
        }.getType());
        funcionarios.stream().forEach(func -> System.out.println(func.toString()));
    } catch (Exception e) {
        e.printStackTrace();
    }
}

public class Funcionario {

    String CODIGOEMPRESA, NOMEEMPRESA, CODIGO, NOME, CODIGOUNIDADE,
            NOMEUNIDADE, CODIGOSETOR, NOMESETOR, CODIGOCARGO, NOMECARGO, CBOCARGO,
            MATRICULAFUNCIONARIO, CPFFUNCIONARIO, SITUACAO, DATA_NASCIMENTO, DATA_ADMISSAO,
            DATA_DEMISSAO, ENDERECO, NUMERO_ENDERECO, BAIRRO, UF;

    public Funcionario() {
    }

    //Getters and Setters

    @Override
    public String toString() {
        return "Funcionario{" + "CODIGOEMPRESA=" + CODIGOEMPRESA + ", NOMEEMPRESA=" + NOMEEMPRESA + ", CODIGO=" + CODIGO + ", NOME=" + NOME + ", CODIGOUNIDADE=" + CODIGOUNIDADE + ", NOMEUNIDADE=" + NOMEUNIDADE + ", CODIGOSETOR=" + CODIGOSETOR + ", NOMESETOR=" + NOMESETOR + ", CODIGOCARGO=" + CODIGOCARGO + ", NOMECARGO=" + NOMECARGO + ", CBOCARGO=" + CBOCARGO + ", MATRICULAFUNCIONARIO=" + MATRICULAFUNCIONARIO + ", CPFFUNCIONARIO=" + CPFFUNCIONARIO + ", SITUACAO=" + SITUACAO + ", DATA_NASCIMENTO=" + DATA_NASCIMENTO + ", DATA_ADMISSAO=" + DATA_ADMISSAO + ", DATA_DEMISSAO=" + DATA_DEMISSAO + ", ENDERECO=" + ENDERECO + ", NUMERO_ENDERECO=" + NUMERO_ENDERECO + ", BAIRRO=" + BAIRRO + ", UF=" + UF + '}';
    }

   }

segue as dependências para maven:

    <dependency>
        <groupId>io.github.openunirest</groupId>
        <artifactId>unirest-java</artifactId>
        <version>2.5.03</version>
    </dependency>
    <dependency>
        <groupId>com.google.code.gson</groupId>
        <artifactId>gson</artifactId>
        <version>2.8.5</version>
    </dependency>

Espero que isso o ajude em algo. :smiley:

Cara muito obrigado Funcionou perfeitamente…

Você tem toda razão sobre HTTPS, não me atentei a isso, por que estava funcionando perfeitamente, fiz uma verificação aqui e realmente o domínio não esta deixando baixar o certificado automaticamente, ficando assim como “não seguro”.

muito obrigado.
Obrigado tb pelo código ja aprimorei ele aqui!