2015-06-25 6 views
19

Zunächst einmal habe ich bereits einige Dokumente gesehen, Stackoverflow Fragen in Bezug auf das gleiche mein Projekt spezifische Frage ..I've Wenn Befehl auszuführen versuchen:curl Befehl in Java

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

aus der Mac-Terminal, bekomme ich meine gewünschten JSON-Format-Daten. Aber Ausführen des gleichen Befehls von Java-Code, bekomme ich Unerlaubt 401 Fehler in der Konsole. Mein Code ist:

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(); 
     } 

ich Unerlaubte 401 Fehler und Haufen von HTML-Tags erhalten. Es scheint wie eine sich wiederholende Frage, aber ich habe alle Ansätze ausprobiert. Ich weiß Alternative verwendet HTTP-Antwort-Methode, aber insbesondere möchte ich Curl-Befehle verwenden. Vielen Dank im Voraus.

Antwort

12

Versuchen Sie, diese Linie

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

in

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

sorry..did nicht helfen! –

+0

kein Problem, meine erste Version fehlte -H Flag, wodurch die Syntax der Abfrage ungültig wird –

0

Änderung dieser hey versuche ich hatte das gleiche Problem. Es funktionierte in meinem Terminal hatte den gleichen Fehler wie bei Ihnen.

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