I am trying a simple display of github repositories. The url "https://api.github.com/search/repositories?q=pluralsight" works in my browser return json and works in fiddler but the following in my .NET Web App is getting a 403 Forbidden error. Can anyone help me understand a fix? My controller is as follows:
public class HomeController : Controller
{
public ActionResult Index()
{
Tweets model = null;
var client = new HttpClient();
var task = client.GetAsync("https://api.github.com/search/repositories?q=pluralsight")
.ContinueWith((taskwithresponse) =>
{
var response = taskwithresponse.Result;
response.EnsureSuccessStatusCode();
var readtask = response.Content.ReadAsAsync<Tweets>();
readtask.Wait();
model = readtask.Result;
});
task.Wait();
return View(model.results);
}
}
I have a class defined as follows (ignore that it is called Tweets) originally was trying to access twitter api.
namespace HttpClientMVCDemo.Controllers
{
public class Tweets
{
public Tweet[] results;
}
public class Tweet
{
[JsonProperty("name")]
public string UserName { get; set; }
[JsonProperty("id")]
public string id { get; set; }
}
}
Code view auto generated based on Amit's classes below:
@model IEnumerable<HttpClientMVCDemo.Controllers.Gits>
@{
ViewBag.Title = "Index";
}
<h2>Index</h2>
<p>
@Html.ActionLink("Create New", "Create")
</p>
<table class="table">
<tr>
<th>
@Html.DisplayNameFor(model => model.total_count)
</th>
<th>
@Html.DisplayNameFor(model => model.incomplete_results)
</th>
<th></th>
</tr>
@foreach (var item in Model) {
<tr>
<td>
@Html.DisplayFor(modelItem => item.total_count)
</td>
<td>
@Html.DisplayFor(modelItem => item.incomplete_results)
</td>
<td>
@Html.ActionLink("Edit", "Edit", new { /* id=item.PrimaryKey */ }) |
@Html.ActionLink("Details", "Details", new { /*id=item.PrimaryKey*/ }) |
@Html.ActionLink("Delete", "Delete", new { /* id=item.PrimaryKey */ })
</td>
</tr>
}