2017-10-21 104 views
0

我是新来的Android工作室,我试图从Github的API(例如https://api.github.com/users/froala),并显示在我的应用程序请求API数据。高效的方式/正确的方法来检索JSON数据

我不知何故应用做检索来自API的JSON:

public class MainActivity extends AppCompatActivity { 

    private TextView tvData; 
    private static final String TAG = "MainActivity"; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     Log.d(TAG, "onCreate: Starting."); 


     // Set up the ViewPager with the sections adapter 


     // Github tab 

     Button buttonHit = (Button) findViewById(R.id.buttonHit); 
     tvData = (TextView) findViewById(R.id.tvJsonItem); 

     buttonHit.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View v) { 

       new JSONTask().execute("https://api.github.com/users/froala"); 

      } 
     }); 

    } 


    public class JSONTask extends AsyncTask<String, String, String> { 
     @Override 
     protected String doInBackground(String... params) { 

      HttpURLConnection connection = null; 
      BufferedReader reader = null; 

      try { 
       // Pass in a String and convert to URL 
       URL url = new URL(params[0]); 
       connection = (HttpURLConnection) url.openConnection(); 
       connection.connect(); 

       InputStream stream = connection.getInputStream(); 

       // for reading data line by line 
       reader = new BufferedReader(new InputStreamReader(stream)); 
       StringBuffer strBuffer = new StringBuffer(); 


       String line = ""; 
       while ((line = reader.readLine()) != null) { 
        strBuffer.append(line); 
       } 

       // If we are able to get the data 

       String retreivedJson = strBuffer.toString(); 
       JSONObject parentObject = new JSONObject(retreivedJson); 
       JsonReader jsonReader = new JsonReader(responseBody); 

       return retreivedJson; 

      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } finally { 
       //cant close null 

       if (connection != null) { 
        // close both connection and the reader 
        connection.disconnect(); 
       } 
       try { 
        if (reader != null) { 
         reader.close(); 
        } 

       } catch (IOException e) { 
        e.printStackTrace(); 
       } 
      } 

      return null; 

     } 

     @Override 
     protected void onPostExecute(String result) { 
      super.onPostExecute(result); 
      tvData.setText(result); 
     } 
    } 
} 

在它看起来像:

enter image description here

现在我只需要使用这个来解析JSON 。但问题是,当我在JSON中使用不同的URL(如https://api.github.com/users/froala/repos)时,检索JSON数据不起作用,并且在单击按钮时应用程序不显示任何内容。这很奇怪,因为/ users/id页面和/ users/id/repos页面都是JSON,看起来没有什么不同。我不知道为什么另一个不工作。

两个问题:

  1. 我使用从API检索JSON的正确方法?
  2. 为什么不与我的代码执行工作的其他链接(https://api.github.com/users/froala/repos)?

请帮帮忙!我很困惑。

+0

您可以使用json转换java库,如gson,jackson。有关第二个查询的更多信息,请参阅http://www.vogella.com/tutorials/JavaLibrary-Gson/article.html – bond007

+0

,此网址是正确的,但您面临服务器端的一些错误,如403状态码。在restclient或postman中检查相同的网址。并添加需要的标题发送成功的请求 – bond007

+0

@ bond007你是什么意思添加需要的标题?我对这个东西很陌生。你能解释还是帮忙? – user6792790

回答

1

第三方库更好,然后通过数据手动迭代,但如果你不愿意去,通过这种方式,你可以按照此过程检索的结果,如果得到的数据是的JSONObject:

public void formatJSONObjectData(String results){ 
    try { 
     JSONObject jsonObject = new JSONObject(results); 
     if(jsonObject.optString("login")!=null) 
      tvData.append(jsonObject.getString("login")); 
     if (jsonObject.optInt("id")!=null) 
      tvData.append(jsonObject.getString("id")); 
     if(jsonObject.optString("avatar_url")!=null) 
      tvData.append(jsonObject.getString("avatar_url")); 

     //you could accordingly retrieve the results from the jsonObject for a specfic key and append it to the TextView 
    }catch (JSONException jsonException){ 
     Log.e("Error",jsonException.getMessage()); 
    } 
} 

如果得到的数据是JSONArray那么你需要分析它以这样的方式

public void formatJSONArray(String results){ 
    try { 
     JSONArray jsonArray = new JSONArray(results); 
     for(int i=0;i<jsonArray.length();i++){ 
      JSONObject jsonObject=jsonArray.getJSONObject(i); 
      if(jsonObject.optString("name")!=null) 
       tvData.append(jsonObject.getString("name")); 
      if (jsonObject.optInt("id")!=null) 
       tvData.append(jsonObject.getString("id")); 
      if(jsonObject.optString("full_name")!=null) 
       tvData.append(jsonObject.getString("full_name")); 

      if(jsonObject.optJSONObject("owner")!=null){ 
       JSONObject ownerObject=jsonObject.getJSONObject("owner"); 
       if(ownerObject.optString("login")!=null) 
        tvData.append(ownerObject.getString("login")); 
       if (ownerObject.optInt("id")!=null) 
        tvData.append(ownerObject.getString("id")); 
       if(jsonObject.optString("avatar_url")!=null) 
        tvData.append(ownerObject.getString("avatar_url")); 
      } 
     } 
    }catch (JSONException jsonException){ 

    } 
} 

呼叫功能,按您的结果数据从onPostExecute(..)

@Override 
    protected void onPostExecute(String result) { 
     super.onPostExecute(result); 
     /* for JSONObject data*/ 
     if(result!=null && !result.isEmpty()) 
      formatJSONData(result) 


     /* for JSONArray data*/ 
     if(result!=null && !result.isEmpty()) 
      formatJSONArray(result) 
    } 
+0

谢谢。但是,我怎样才能使URL额外的头部工作? – user6792790

+0

这是因为您在代码中使用的网址ie [/users/froala](https://api.github.com/users/froala)会返回一个JSONObject,而[/ users/froala/repos](https: //api.github.com/users/froala/repos)会返回一个数组,因此您必须通过JSON数组解析相应url的数据。由于您试图通过JSONObject解析来自第二个url的检索数据,因此它可能会引发异常,导致TextView中的数据为空。 –

+0

我已经更新了我的答案。如果它满足您的需求,请检查一下。 –

1
  1. 您可以使用改造,并从URL中获取数据:

    你可以参考:

    https://www.androidhive.info/2016/05/android-working-with-retrofit-http-library/

  2. 您可以使用上述

与对象你的JSON字符串,我使用http://www.jsonschema2pojo.org/并创建对象:

-----------------------------------com.example.Example.java----------------------------------- 

package com.example; 

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class Example { 

@SerializedName("id") 
@Expose 
private Integer id; 
@SerializedName("name") 
@Expose 
private String name; 
@SerializedName("full_name") 
@Expose 
private String fullName; 
@SerializedName("owner") 
@Expose 
private Owner owner; 
@SerializedName("private") 
@Expose 
private Boolean _private; 
@SerializedName("html_url") 
@Expose 
private String htmlUrl; 
@SerializedName("description") 
@Expose 
private String description; 
@SerializedName("fork") 
@Expose 
private Boolean fork; 
@SerializedName("url") 
@Expose 
private String url; 
@SerializedName("forks_url") 
@Expose 
private String forksUrl; 
@SerializedName("keys_url") 
@Expose 
private String keysUrl; 
@SerializedName("collaborators_url") 
@Expose 
private String collaboratorsUrl; 
@SerializedName("teams_url") 
@Expose 
private String teamsUrl; 
@SerializedName("hooks_url") 
@Expose 
private String hooksUrl; 
@SerializedName("issue_events_url") 
@Expose 
private String issueEventsUrl; 
@SerializedName("events_url") 
@Expose 
private String eventsUrl; 
@SerializedName("assignees_url") 
@Expose 
private String assigneesUrl; 
@SerializedName("branches_url") 
@Expose 
private String branchesUrl; 
@SerializedName("tags_url") 
@Expose 
private String tagsUrl; 
@SerializedName("blobs_url") 
@Expose 
private String blobsUrl; 
@SerializedName("git_tags_url") 
@Expose 
private String gitTagsUrl; 
@SerializedName("git_refs_url") 
@Expose 
private String gitRefsUrl; 
@SerializedName("trees_url") 
@Expose 
private String treesUrl; 
@SerializedName("statuses_url") 
@Expose 
private String statusesUrl; 
@SerializedName("languages_url") 
@Expose 
private String languagesUrl; 
@SerializedName("stargazers_url") 
@Expose 
private String stargazersUrl; 
@SerializedName("contributors_url") 
@Expose 
private String contributorsUrl; 
@SerializedName("subscribers_url") 
@Expose 
private String subscribersUrl; 
@SerializedName("subscription_url") 
@Expose 
private String subscriptionUrl; 
@SerializedName("commits_url") 
@Expose 
private String commitsUrl; 
@SerializedName("git_commits_url") 
@Expose 
private String gitCommitsUrl; 
@SerializedName("comments_url") 
@Expose 
private String commentsUrl; 
@SerializedName("issue_comment_url") 
@Expose 
private String issueCommentUrl; 
@SerializedName("contents_url") 
@Expose 
private String contentsUrl; 
@SerializedName("compare_url") 
@Expose 
private String compareUrl; 
@SerializedName("merges_url") 
@Expose 
private String mergesUrl; 
@SerializedName("archive_url") 
@Expose 
private String archiveUrl; 
@SerializedName("downloads_url") 
@Expose 
private String downloadsUrl; 
@SerializedName("issues_url") 
@Expose 
private String issuesUrl; 
@SerializedName("pulls_url") 
@Expose 
private String pullsUrl; 
@SerializedName("milestones_url") 
@Expose 
private String milestonesUrl; 
@SerializedName("notifications_url") 
@Expose 
private String notificationsUrl; 
@SerializedName("labels_url") 
@Expose 
private String labelsUrl; 
@SerializedName("releases_url") 
@Expose 
private String releasesUrl; 
@SerializedName("deployments_url") 
@Expose 
private String deploymentsUrl; 
@SerializedName("created_at") 
@Expose 
private String createdAt; 
@SerializedName("updated_at") 
@Expose 
private String updatedAt; 
@SerializedName("pushed_at") 
@Expose 
private String pushedAt; 
@SerializedName("git_url") 
@Expose 
private String gitUrl; 
@SerializedName("ssh_url") 
@Expose 
private String sshUrl; 
@SerializedName("clone_url") 
@Expose 
private String cloneUrl; 
@SerializedName("svn_url") 
@Expose 
private String svnUrl; 
@SerializedName("homepage") 
@Expose 
private String homepage; 
@SerializedName("size") 
@Expose 
private Integer size; 
@SerializedName("stargazers_count") 
@Expose 
private Integer stargazersCount; 
@SerializedName("watchers_count") 
@Expose 
private Integer watchersCount; 
@SerializedName("language") 
@Expose 
private String language; 
@SerializedName("has_issues") 
@Expose 
private Boolean hasIssues; 
@SerializedName("has_projects") 
@Expose 
private Boolean hasProjects; 
@SerializedName("has_downloads") 
@Expose 
private Boolean hasDownloads; 
@SerializedName("has_wiki") 
@Expose 
private Boolean hasWiki; 
@SerializedName("has_pages") 
@Expose 
private Boolean hasPages; 
@SerializedName("forks_count") 
@Expose 
private Integer forksCount; 
@SerializedName("mirror_url") 
@Expose 
private Object mirrorUrl; 
@SerializedName("archived") 
@Expose 
private Boolean archived; 
@SerializedName("open_issues_count") 
@Expose 
private Integer openIssuesCount; 
@SerializedName("forks") 
@Expose 
private Integer forks; 
@SerializedName("open_issues") 
@Expose 
private Integer openIssues; 
@SerializedName("watchers") 
@Expose 
private Integer watchers; 
@SerializedName("default_branch") 
@Expose 
private String defaultBranch; 

public Integer getId() { 
return id; 
} 

public void setId(Integer id) { 
this.id = id; 
} 

public String getName() { 
return name; 
} 

public void setName(String name) { 
this.name = name; 
} 

public String getFullName() { 
return fullName; 
} 

public void setFullName(String fullName) { 
this.fullName = fullName; 
} 

public Owner getOwner() { 
return owner; 
} 

public void setOwner(Owner owner) { 
this.owner = owner; 
} 

public Boolean getPrivate() { 
return _private; 
} 

public void setPrivate(Boolean _private) { 
this._private = _private; 
} 

public String getHtmlUrl() { 
return htmlUrl; 
} 

public void setHtmlUrl(String htmlUrl) { 
this.htmlUrl = htmlUrl; 
} 

public String getDescription() { 
return description; 
} 

public void setDescription(String description) { 
this.description = description; 
} 

public Boolean getFork() { 
return fork; 
} 

public void setFork(Boolean fork) { 
this.fork = fork; 
} 

public String getUrl() { 
return url; 
} 

public void setUrl(String url) { 
this.url = url; 
} 

public String getForksUrl() { 
return forksUrl; 
} 

public void setForksUrl(String forksUrl) { 
this.forksUrl = forksUrl; 
} 

public String getKeysUrl() { 
return keysUrl; 
} 

public void setKeysUrl(String keysUrl) { 
this.keysUrl = keysUrl; 
} 

public String getCollaboratorsUrl() { 
return collaboratorsUrl; 
} 

public void setCollaboratorsUrl(String collaboratorsUrl) { 
this.collaboratorsUrl = collaboratorsUrl; 
} 

public String getTeamsUrl() { 
return teamsUrl; 
} 

public void setTeamsUrl(String teamsUrl) { 
this.teamsUrl = teamsUrl; 
} 

public String getHooksUrl() { 
return hooksUrl; 
} 

public void setHooksUrl(String hooksUrl) { 
this.hooksUrl = hooksUrl; 
} 

public String getIssueEventsUrl() { 
return issueEventsUrl; 
} 

public void setIssueEventsUrl(String issueEventsUrl) { 
this.issueEventsUrl = issueEventsUrl; 
} 

public String getEventsUrl() { 
return eventsUrl; 
} 

public void setEventsUrl(String eventsUrl) { 
this.eventsUrl = eventsUrl; 
} 

public String getAssigneesUrl() { 
return assigneesUrl; 
} 

public void setAssigneesUrl(String assigneesUrl) { 
this.assigneesUrl = assigneesUrl; 
} 

public String getBranchesUrl() { 
return branchesUrl; 
} 

public void setBranchesUrl(String branchesUrl) { 
this.branchesUrl = branchesUrl; 
} 

public String getTagsUrl() { 
return tagsUrl; 
} 

public void setTagsUrl(String tagsUrl) { 
this.tagsUrl = tagsUrl; 
} 

public String getBlobsUrl() { 
return blobsUrl; 
} 

public void setBlobsUrl(String blobsUrl) { 
this.blobsUrl = blobsUrl; 
} 

public String getGitTagsUrl() { 
return gitTagsUrl; 
} 

public void setGitTagsUrl(String gitTagsUrl) { 
this.gitTagsUrl = gitTagsUrl; 
} 

public String getGitRefsUrl() { 
return gitRefsUrl; 
} 

public void setGitRefsUrl(String gitRefsUrl) { 
this.gitRefsUrl = gitRefsUrl; 
} 

public String getTreesUrl() { 
return treesUrl; 
} 

public void setTreesUrl(String treesUrl) { 
this.treesUrl = treesUrl; 
} 

public String getStatusesUrl() { 
return statusesUrl; 
} 

public void setStatusesUrl(String statusesUrl) { 
this.statusesUrl = statusesUrl; 
} 

public String getLanguagesUrl() { 
return languagesUrl; 
} 

public void setLanguagesUrl(String languagesUrl) { 
this.languagesUrl = languagesUrl; 
} 

public String getStargazersUrl() { 
return stargazersUrl; 
} 

public void setStargazersUrl(String stargazersUrl) { 
this.stargazersUrl = stargazersUrl; 
} 

public String getContributorsUrl() { 
return contributorsUrl; 
} 

public void setContributorsUrl(String contributorsUrl) { 
this.contributorsUrl = contributorsUrl; 
} 

public String getSubscribersUrl() { 
return subscribersUrl; 
} 

public void setSubscribersUrl(String subscribersUrl) { 
this.subscribersUrl = subscribersUrl; 
} 

public String getSubscriptionUrl() { 
return subscriptionUrl; 
} 

public void setSubscriptionUrl(String subscriptionUrl) { 
this.subscriptionUrl = subscriptionUrl; 
} 

public String getCommitsUrl() { 
return commitsUrl; 
} 

public void setCommitsUrl(String commitsUrl) { 
this.commitsUrl = commitsUrl; 
} 

public String getGitCommitsUrl() { 
return gitCommitsUrl; 
} 

public void setGitCommitsUrl(String gitCommitsUrl) { 
this.gitCommitsUrl = gitCommitsUrl; 
} 

public String getCommentsUrl() { 
return commentsUrl; 
} 

public void setCommentsUrl(String commentsUrl) { 
this.commentsUrl = commentsUrl; 
} 

public String getIssueCommentUrl() { 
return issueCommentUrl; 
} 

public void setIssueCommentUrl(String issueCommentUrl) { 
this.issueCommentUrl = issueCommentUrl; 
} 

public String getContentsUrl() { 
return contentsUrl; 
} 

public void setContentsUrl(String contentsUrl) { 
this.contentsUrl = contentsUrl; 
} 

public String getCompareUrl() { 
return compareUrl; 
} 

public void setCompareUrl(String compareUrl) { 
this.compareUrl = compareUrl; 
} 

public String getMergesUrl() { 
return mergesUrl; 
} 

public void setMergesUrl(String mergesUrl) { 
this.mergesUrl = mergesUrl; 
} 

public String getArchiveUrl() { 
return archiveUrl; 
} 

public void setArchiveUrl(String archiveUrl) { 
this.archiveUrl = archiveUrl; 
} 

public String getDownloadsUrl() { 
return downloadsUrl; 
} 

public void setDownloadsUrl(String downloadsUrl) { 
this.downloadsUrl = downloadsUrl; 
} 

public String getIssuesUrl() { 
return issuesUrl; 
} 

public void setIssuesUrl(String issuesUrl) { 
this.issuesUrl = issuesUrl; 
} 

public String getPullsUrl() { 
return pullsUrl; 
} 

public void setPullsUrl(String pullsUrl) { 
this.pullsUrl = pullsUrl; 
} 

public String getMilestonesUrl() { 
return milestonesUrl; 
} 

public void setMilestonesUrl(String milestonesUrl) { 
this.milestonesUrl = milestonesUrl; 
} 

public String getNotificationsUrl() { 
return notificationsUrl; 
} 

public void setNotificationsUrl(String notificationsUrl) { 
this.notificationsUrl = notificationsUrl; 
} 

public String getLabelsUrl() { 
return labelsUrl; 
} 

public void setLabelsUrl(String labelsUrl) { 
this.labelsUrl = labelsUrl; 
} 

public String getReleasesUrl() { 
return releasesUrl; 
} 

public void setReleasesUrl(String releasesUrl) { 
this.releasesUrl = releasesUrl; 
} 

public String getDeploymentsUrl() { 
return deploymentsUrl; 
} 

public void setDeploymentsUrl(String deploymentsUrl) { 
this.deploymentsUrl = deploymentsUrl; 
} 

public String getCreatedAt() { 
return createdAt; 
} 

public void setCreatedAt(String createdAt) { 
this.createdAt = createdAt; 
} 

public String getUpdatedAt() { 
return updatedAt; 
} 

public void setUpdatedAt(String updatedAt) { 
this.updatedAt = updatedAt; 
} 

public String getPushedAt() { 
return pushedAt; 
} 

public void setPushedAt(String pushedAt) { 
this.pushedAt = pushedAt; 
} 

public String getGitUrl() { 
return gitUrl; 
} 

public void setGitUrl(String gitUrl) { 
this.gitUrl = gitUrl; 
} 

public String getSshUrl() { 
return sshUrl; 
} 

public void setSshUrl(String sshUrl) { 
this.sshUrl = sshUrl; 
} 

public String getCloneUrl() { 
return cloneUrl; 
} 

public void setCloneUrl(String cloneUrl) { 
this.cloneUrl = cloneUrl; 
} 

public String getSvnUrl() { 
return svnUrl; 
} 

public void setSvnUrl(String svnUrl) { 
this.svnUrl = svnUrl; 
} 

public String getHomepage() { 
return homepage; 
} 

public void setHomepage(String homepage) { 
this.homepage = homepage; 
} 

public Integer getSize() { 
return size; 
} 

public void setSize(Integer size) { 
this.size = size; 
} 

public Integer getStargazersCount() { 
return stargazersCount; 
} 

public void setStargazersCount(Integer stargazersCount) { 
this.stargazersCount = stargazersCount; 
} 

public Integer getWatchersCount() { 
return watchersCount; 
} 

public void setWatchersCount(Integer watchersCount) { 
this.watchersCount = watchersCount; 
} 

public String getLanguage() { 
return language; 
} 

public void setLanguage(String language) { 
this.language = language; 
} 

public Boolean getHasIssues() { 
return hasIssues; 
} 

public void setHasIssues(Boolean hasIssues) { 
this.hasIssues = hasIssues; 
} 

public Boolean getHasProjects() { 
return hasProjects; 
} 

public void setHasProjects(Boolean hasProjects) { 
this.hasProjects = hasProjects; 
} 

public Boolean getHasDownloads() { 
return hasDownloads; 
} 

public void setHasDownloads(Boolean hasDownloads) { 
this.hasDownloads = hasDownloads; 
} 

public Boolean getHasWiki() { 
return hasWiki; 
} 

public void setHasWiki(Boolean hasWiki) { 
this.hasWiki = hasWiki; 
} 

public Boolean getHasPages() { 
return hasPages; 
} 

public void setHasPages(Boolean hasPages) { 
this.hasPages = hasPages; 
} 

public Integer getForksCount() { 
return forksCount; 
} 

public void setForksCount(Integer forksCount) { 
this.forksCount = forksCount; 
} 

public Object getMirrorUrl() { 
return mirrorUrl; 
} 

public void setMirrorUrl(Object mirrorUrl) { 
this.mirrorUrl = mirrorUrl; 
} 

public Boolean getArchived() { 
return archived; 
} 

public void setArchived(Boolean archived) { 
this.archived = archived; 
} 

public Integer getOpenIssuesCount() { 
return openIssuesCount; 
} 

public void setOpenIssuesCount(Integer openIssuesCount) { 
this.openIssuesCount = openIssuesCount; 
} 

public Integer getForks() { 
return forks; 
} 

public void setForks(Integer forks) { 
this.forks = forks; 
} 

public Integer getOpenIssues() { 
return openIssues; 
} 

public void setOpenIssues(Integer openIssues) { 
this.openIssues = openIssues; 
} 

public Integer getWatchers() { 
return watchers; 
} 

public void setWatchers(Integer watchers) { 
this.watchers = watchers; 
} 

public String getDefaultBranch() { 
return defaultBranch; 
} 

public void setDefaultBranch(String defaultBranch) { 
this.defaultBranch = defaultBranch; 
} 

} 

----------------------------------- com.example.Owner.java- ----------------------------------

package com.example; 

import com.google.gson.annotations.Expose; 
import com.google.gson.annotations.SerializedName; 

public class Owner { 

@SerializedName("login") 
@Expose 
private String login; 
@SerializedName("id") 
@Expose 
private Integer id; 
@SerializedName("avatar_url") 
@Expose 
private String avatarUrl; 
@SerializedName("gravatar_id") 
@Expose 
private String gravatarId; 
@SerializedName("url") 
@Expose 
private String url; 
@SerializedName("html_url") 
@Expose 
private String htmlUrl; 
@SerializedName("followers_url") 
@Expose 
private String followersUrl; 
@SerializedName("following_url") 
@Expose 
private String followingUrl; 
@SerializedName("gists_url") 
@Expose 
private String gistsUrl; 
@SerializedName("starred_url") 
@Expose 
private String starredUrl; 
@SerializedName("subscriptions_url") 
@Expose 
private String subscriptionsUrl; 
@SerializedName("organizations_url") 
@Expose 
private String organizationsUrl; 
@SerializedName("repos_url") 
@Expose 
private String reposUrl; 
@SerializedName("events_url") 
@Expose 
private String eventsUrl; 
@SerializedName("received_events_url") 
@Expose 
private String receivedEventsUrl; 
@SerializedName("type") 
@Expose 
private String type; 
@SerializedName("site_admin") 
@Expose 
private Boolean siteAdmin; 

public String getLogin() { 
return login; 
} 

public void setLogin(String login) { 
this.login = login; 
} 

public Integer getId() { 
return id; 
} 

public void setId(Integer id) { 
this.id = id; 
} 

public String getAvatarUrl() { 
return avatarUrl; 
} 

public void setAvatarUrl(String avatarUrl) { 
this.avatarUrl = avatarUrl; 
} 

public String getGravatarId() { 
return gravatarId; 
} 

public void setGravatarId(String gravatarId) { 
this.gravatarId = gravatarId; 
} 

public String getUrl() { 
return url; 
} 

public void setUrl(String url) { 
this.url = url; 
} 

public String getHtmlUrl() { 
return htmlUrl; 
} 

public void setHtmlUrl(String htmlUrl) { 
this.htmlUrl = htmlUrl; 
} 

public String getFollowersUrl() { 
return followersUrl; 
} 

public void setFollowersUrl(String followersUrl) { 
this.followersUrl = followersUrl; 
} 

public String getFollowingUrl() { 
return followingUrl; 
} 

public void setFollowingUrl(String followingUrl) { 
this.followingUrl = followingUrl; 
} 

public String getGistsUrl() { 
return gistsUrl; 
} 

public void setGistsUrl(String gistsUrl) { 
this.gistsUrl = gistsUrl; 
} 

public String getStarredUrl() { 
return starredUrl; 
} 

public void setStarredUrl(String starredUrl) { 
this.starredUrl = starredUrl; 
} 

public String getSubscriptionsUrl() { 
return subscriptionsUrl; 
} 

public void setSubscriptionsUrl(String subscriptionsUrl) { 
this.subscriptionsUrl = subscriptionsUrl; 
} 

public String getOrganizationsUrl() { 
return organizationsUrl; 
} 

public void setOrganizationsUrl(String organizationsUrl) { 
this.organizationsUrl = organizationsUrl; 
} 

public String getReposUrl() { 
return reposUrl; 
} 

public void setReposUrl(String reposUrl) { 
this.reposUrl = reposUrl; 
} 

public String getEventsUrl() { 
return eventsUrl; 
} 

public void setEventsUrl(String eventsUrl) { 
this.eventsUrl = eventsUrl; 
} 

public String getReceivedEventsUrl() { 
return receivedEventsUrl; 
} 

public void setReceivedEventsUrl(String receivedEventsUrl) { 
this.receivedEventsUrl = receivedEventsUrl; 
} 

public String getType() { 
return type; 
} 

public void setType(String type) { 
this.type = type; 
} 

public Boolean getSiteAdmin() { 
return siteAdmin; 
} 

public void setSiteAdmin(Boolean siteAdmin) { 
this.siteAdmin = siteAdmin; 
} 

} 

而且使用设备的改进,例如:

Call<Example> call = apiService.getData(URL); 


    call.enqueue(new Callback<Example>() { 
     @Override 
     public void onResponse(Call<Example> call, Response<Example> response) { 

      Log.d(TAG, "response.body(): " + response.body().getExample()); 


     } 

     @Override 
     public void onFailure(Call<Example> call, Throwable t) { 
      // Log error here since request failed 

      Log.e(TAG, t.toString()); 
     } 
    }); 

我希望它能帮助你解决问题!像课程作业的改造

+0

第一个示例是否使用HTTPUrlConnection? – user6792790