2017-10-06 7 views
0

私はretrofit2を学ぶために、私のプロジェクトのGitLabという名前をrecyclerViewに表示することを試みています。しかし、私は正確に何をすべきかを見つけることができません! gitlabによるwikiプロジェクターのプライベートトークンとlistが見つかりました。GitLapのRetrofit2とベースルール

これは私のbaseUrlにあると私はビルダーを作成します。

Retrofit.Builder builder = new Retrofit.Builder() 
      .baseUrl("https://gitlab.com/api/v4/projects?private_token=xxxxxx") 
      .addConverterFactory(GsonConverterFactory.create()); 

と、これは私のエンドポイントである:

@GET("https://stackoverflow.com/users/:{userid}/projects") 
Call<List<GitLabRepo>> reposForUser(@Path("userid") int user); 

私GitLabRepoのPOJOクラス:

class GitLabRepo { 

private String name; 

public String getName() { 
    return name; 
} 
} 

実行した後に私が得ましたこのエラー:

java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.sayres.createandroidclient/com.example.sayres.createandroidclient.MainActivity}: java.lang.IllegalArgumentException: baseUrl must end in /: https://gitlab.com/api/v4/projects?private_token=rjezfrSUTn3fcugxLujm/ 
               at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2665) 
               at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2726) 
               at android.app.ActivityThread.-wrap12(ActivityThread.java) 
               at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1477) 
               at android.os.Handler.dispatchMessage(Handler.java:102) 
               at android.os.Looper.loop(Looper.java:154) 
               at android.app.ActivityThread.main(ActivityThread.java:6119) 
               at java.lang.reflect.Method.invoke(Native Method) 
               at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:886) 
               at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:776) 
               Caused by: java.lang.IllegalArgumentException: baseUrl must end in /: https://gitlab.com/api/v4/projects?private_token=xxxxxx/ 
               at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:513) 
               at retrofit2.Retrofit$Builder.baseUrl(Retrofit.java:456) 
               at com.example.sayres.createandroidclient.MainActivity.onCreate(MainActivity.java:34) 
               at android.app.Activity.performCreate(Activity.java:6679) 

私は自分の問題がbaseUrlに関連していることを知っていますが、何が正しいですかgitLab BaseUrl? 私のプロジェクト名をrecycelerviewリストに一覧表示したいだけです。

****************** ******************編集 私はポスターの使用:

https://gitlab.com/api/v4/projects?private_token=******/users/:******/projects 

そして、私が得た:

{ 
"message": "401 Unauthorized" 
} 

私はgitlab wikiStatus codesに見ると、そこに書いている:

401 Unauthorized The user is not authenticated, a valid user token is necessary. 

を私はを追加しましたプライベートトークン

答えて

0

つまり、私はまだあなたの提案が、私を行い、この

@GET("users/:{userid}/projects/") 
Call<List<GitLabRepo>> reposForUser(@Path("userid") int user); 

のようにコードを変更し、この

Retrofit.Builder builder = new Retrofit.Builder() 
     .baseUrl("https://gitlab.com/api/v4/projects?private_token=xxxxxx/") 
     .addConverterFactory(GsonConverterFactory.create()); 
+0

ようなあなたのエンドポイントに「/」を追加取得からスラッシュ「/」削除上記のエラーが発生しました: '原因:java.lang.IllegalArgumentException:baseUrlは/:https://gitlab.com/api/v4/projects?private_token = xxxxxxxx /' – sayres

+0

で終了する必要があります。トークンの後に、このユーザーのようなプロジェクトの後にadd '/'を追加してください/:{userid}/projects/ –

+0

はい。 '.baseUrl(" https://gitlab.com/api/v4/projects?private_token=xxxx/ ")' – sayres

関連する問題