2015-06-25 13 views
19

Prima di tutto, ho già visto paio di documenti, domande StackOverflow per quanto riguarda la stessa ..I've mio progetto domanda specifica Quando si tenta di eseguire il comando:comando curl in java

curl -u username:password https://example.com/xyz/abc 

dal mac terminale, ottengo i dati desiderati in formato json. Ma eseguendo lo stesso comando dal codice java, ottengo l'errore 401 non autorizzato nella console. Il mio codice è:

String username="myusername"; 
    String password="mypassword"; 
    String url="https://www.example.com/xyz/abc"; 
     String[] command = {"curl", "-u" ,"Accept:application/json", username, ":" , password , url}; 
     ProcessBuilder process = new ProcessBuilder(command); 
     Process p; 
     try 
     { 
      p = process.start(); 
      BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream())); 
       StringBuilder builder = new StringBuilder(); 
       String line = null; 
       while ((line = reader.readLine()) != null) { 
         builder.append(line); 
         builder.append(System.getProperty("line.separator")); 
       } 
       String result = builder.toString(); 
       System.out.print(result); 

     } 
     catch (IOException e) 
     { System.out.print("error"); 
      e.printStackTrace(); 
     } 

ricevo Unauthorized 401 errori e mazzo di tag html. Sembra una domanda ripetitiva, ma ho provato tutti gli approcci. So che l'alternativa sta usando il metodo di risposta http, ma in particolare voglio usare i comandi di arricciatura. Grazie in anticipo.

risposta

12

provare a cambiare questa linea

String[] command = {"curl", "-u" ,"Accept:application/json", username, ":" , password , url}; 

in

String[] command = {"curl", "-H", "Accept:application/json", "-u", username+":"+password , url}; 
+0

sorry..didn't help! –

+0

nessun problema, la mia prima versione mancava -H flag, rendendo invalida la sintassi della query –

0

hey provare questo ho avuto lo stesso problema. Ha funzionato nel mio terminale ha avuto lo stesso errore del tuo.

String[] command = {"curl", "-u" , username+ ":" + password , url};