2017-10-25 3 views
0

Ich versuche, eine GET-Anforderung an einen lokalen Server, den ich ausgeführt habe, vorzunehmen. Ich habe Probleme beim Zurücksenden der richtigen Daten. Ich sehe eine "Nicht autorisierte" Antwort. Kann jemand irgendwelche grellen Probleme damit feststellen, dass der String 'Token' korrekt ist.Java-HTTP-Anforderung mit Token-Authentifizierung

protected Object doInBackground(Void... params) { 
     try { 
      String url = "http://192.168.0.59:8000/events/"; 
      URL object = new URL(url); 
      HttpURLConnection con = (HttpURLConnection) object.openConnection(); 
      con.setDoOutput(true); 
      con.setDoInput(true); 
      con.setRequestMethod("GET"); 
      con.setRequestProperty("Content-Type", "application/json; charset=UTF-8"); 
      con.setRequestProperty("Accept", "application/json"); 
      con.setRequestProperty("Authorization:", "Token " + token); 

      //Display what the GET request returns 
      StringBuilder sb = new StringBuilder(); 
      int HttpResult = con.getResponseCode(); 
      if (HttpResult == HttpURLConnection.HTTP_OK) { 
       BufferedReader br = new BufferedReader(
         new InputStreamReader(con.getInputStream(), "utf-8")); 
       String line = null; 
       while ((line = br.readLine()) != null) { 
        sb.append(line + "\n"); 
       } 
       br.close(); 
      } else { 
       System.out.println(con.getResponseMessage()); 
      } 
     } catch (Exception e) { 
      Log.d("Uh Oh","Check your network."); 
      return false; 
     } 
     return false; 

} *

konnte ich eine Locke Anfrage von der Kommandozeile arbeiten erhalten:

curl -H "Authorization: Token token" http://0.0.0.0:8000/events/ 
+0

Sie müssen sich authentifizieren. – atom

+0

siehe https://StackOverflow.com/questions/12732422/Adding-header-for-httpurlconnection –

+1

Lassen Sie die ':' in "" Authorization: "'. –

Antwort

1

Es stellt sich heraus, dieses Problem, indem die con.setDoOutput(true); verursacht wurde, wie Anfragen nicht erhalten tun schließe einen Körper ein.