2016-04-06 3 views
0

私はこれは私が今まで試してみましたものです..私は不正だエラー..応答コード401
"curl -H" Javaでoauth2の作業用のperlコードを作成したいです。許可:ベアラー:<TOKEN> https://canvas.instructure.com/api/v1 ";

を私はperlで作品を使用していたトークンを取得しています:

public static void main(String[] args) throws Exception { 
     try { 
     String auth = returnAuth(); //getting token from a file. 
     //System.out.println(auth); 
     String url1= "https://canvas.instructure.com/api/v1"; 
     URL url = new URL(url1+"/courses"); 
     HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); 
     connection.setRequestMethod("GET");  

     //connection.setRequestProperty("Authorization", "Bearer " + auth); 

     connection.setRequestProperty("Authorization", "Bearer "+auth); 
     System.out.println("\nSending 'GET' request to URL : " + url); 
     System.out.println("Response code:" + connection.getResponseCode()); 
     System.out.println("Response message:" + connection.getResponseMessage()); 

      // Read the response: 
      BufferedReader reader = new BufferedReader(new InputStreamReader(
      connection.getInputStream())); 
      String line; 
      StringBuffer response = new StringBuffer(); 
      while ((line = reader.readLine()) != null) { 
       response.append(line); 
      } 
      reader.close(); 
      System.out.println(response.toString()); 
     } 
     catch (MalformedURLException e1) { 
      e1.printStackTrace(); 
     } catch (IOException e2) { 
      e2.printStackTrace();   
     } 
    } 

答えて

1
public static void main(String[] args) throws Exception { 
    try { 
    String auth = returnAuth(); //getting token from a file. 
    String url1= "https://canvas.instructure.com/api/v1/courses"; 
    URL url = new URL(url1); 
    HttpsURLConnection connection =(HttpsURLConnection) url.openConnection(); 
    connection.setRequestMethod("GET");  

    connection.setRequestProperty("Authorization", "Bearer "+auth); 
    System.out.println("\nSending 'GET' request to URL : " + url); 
    System.out.println("Response code:" + connection.getResponseCode()); 
    System.out.println("Response message:" + connection.getResponseMessage()); 

     // Read the response: 
     BufferedReader reader = new BufferedReader(new InputStreamReader(
     connection.getInputStream())); 
     String line; 
     while ((line = reader.readLine()) != null) { 
      System.out.println(line); 
     } 
     reader.close(); 
    } 
    catch (MalformedURLException e1) { 
     e1.printStackTrace(); 
    } catch (IOException e2) { 
     e2.printStackTrace();   
    } 
} 
0

あなたが持っていますそれはコメントアウトされましたが、私が扱ったすべてのOauthサーバーは "ベアラー<トークン>"です - スペースとコロンは1つです。

+0

その間違いのために申し訳ありません。しかし、コロンとスペースを使わずに試しました。まだ動作していません。 – PrasadPatil

+0

トークンをどのように生成しているのか尋ねる必要があります。寿命が限られており、有効である必要があります。私はPostman(https://www.getpostman.com/)Firebug(https://getfirebug.com/)のようなものを使って最初に認証を取得し、Javaコードが動作するようにすることを提案できますか? – stdunbar

+0

私は新しいトークンを生成し、それがうまくいっていれば試してみて、あなたの提案にも取り組もうとします – PrasadPatil

0

呼び出した後にパラメータを設定します。

コードを変更して、最初に認証を設定してから、接続を開きます。

String url1= "https://canvas.instructure.com/api/v1"; 
URL url = new URL(url1+"/courses"); 
connection.setRequestProperty("Authorization", "Bearer "+auth); 
connection.setRequestMethod("GET");  

//now you can open the connection... 

HttpsURLConnection connection = (HttpsURLConnection) url.openConnection(); 
+0

メソッドreturnAuth()はトークンを正しく返していませんでした。 – PrasadPatil

関連する問題