Heads up! To view this whole video, sign in with your Courses account or enroll in your free 7-day trial. Sign In Enroll
Preview
Start a free Courses trial
to watch this video
We'll use the Bing News Search API to get news headlines.
Now that we know how to use the web client
class to retrieve data from a web page,
0:00
we can use the Bing search
API to retrieve data.
0:04
We'll take our top ten players
of the MLS and then search for
0:08
news headlines about each player.
0:11
Earlier we use the web client
class with just a URL but
0:14
this time we'll need to send
our API key with our request.
0:18
We'll do that with headers.
0:21
You might have learned about
headers with us before,
0:23
they are extra pieces of
information about a web request or
0:25
response that includes additional
information about the message.
0:28
>> Let's take a look at
the Bing News Search API documentation.
0:33
Here, we've got a little preview tool.
0:38
We can click on one of these examples.
0:41
And it looks like we've
got results to the right.
0:44
Let's take a look at the JSON.
0:46
We start out with a curly brace.
0:49
That means that this entire
JSON response is one object.
0:51
And looks like the results are in
this property named value.
0:57
It's got an array,
I can tell because of this bracket.
1:01
Name, it looks like that's a headline.
1:04
And description, that's the summary.
1:07
Let's go back up and
click on Documentation.
1:12
Let's see, to get started read
our Getting Started guide
1:16
which describes how you can obtain
your own subscription keys.
1:19
I've already got my API key,
so if you haven't already and
1:23
wanna follow along make sure
to pause the video now.
1:26
Click on the Getting Started link right
here and follow the instructions.
1:30
Use of these APIs are free under a certain
number of requests, so keep that in mind.
1:34
For information that shows you how
to use the API, see News Guide.
1:40
All right,
let's see we've got three URLs we can use.
1:44
This second one here looks
like the one we should use for
1:48
searching on soccer player names.
1:52
Let's see if we can find an example.
1:55
Getting news articles that
are relevant to a search query.
1:58
All right.
2:01
Get, here's what our URL should
look like when we make the request.
2:05
And here's what our API
key header will look like.
2:08
And we've got a sample of the response.
2:12
I think this is all we
need to get started.
2:15
We'll need a class first so
we can deserialize this data.
2:17
We can copy this JSON response.
2:20
And we'll use our paste JSON as
classes trick we did earlier.
2:23
We'll reference this page later for
2:29
the URL in our API key once
we get into using web client.
2:31
Back in our code we'll click at class and
let's name a new search.
2:35
Okay, we've got a response
in the clipboard.
2:46
So I'll highlight this.
2:48
Click Edit.
2:50
Paste Special.
2:51
Paste JSON as Classes.
2:52
Back in the day, we used to have
to type all this out by hand.
2:56
Let's rename RootObject to NewSearch.
3:00
Now we can go back to
our program class and
3:04
create a method to retrieve
our new search results.
3:07
Down here at the bottom we can copy and
paste our Get Google home page method.
3:11
We need to make a request for
each one of our players,
3:22
so let's call it get news for player.
3:25
GetNewsForPlayer, and
3:28
it'll take a string
parameter called playerName.
3:31
For now we'll focus on just getting
the string result before we deserialize.
3:38
Let's change the variable name to,
searchResults.
3:43
And change it down here, too.
3:49
Now we need the URL,
we'll go copy it from the page.
3:53
All right this, right here and
3:58
We'll need to replace the search
parameter in the your URL, though.
4:04
We can use a method on
the string class called format.
4:08
It returns a string and
accepts additional parameters,
4:11
that it inserts into
the string it returns.
4:14
Let's see how it works.
4:17
Place Google with string.format.
4:18
The first parameter is the composite
string in which it will insert values.
4:25
Which is our URL.
4:29
Paste that there.
4:32
Then we'll replace the text after Q
equals with an indexed placeholder.
4:34
Which is specified by curly braces and
an index number.
4:41
Curly brace zero, curly brace.
4:45
Then we'll pass the player name
as the second parameter into
4:48
the string.format method.
4:53
PlayerName, then we enclose
the string.format method.
4:55
The placeholder here is telling
string.format to insert the value
5:01
of the playerName variable.
5:06
There are lots of things you
can do with this method.
5:08
It's especially useful for
formatting date time values and
5:10
decimal numbers into culture
specific formatting.
5:13
For more reading on this method,
check out the documentation and the notes.
5:17
Next we need to get our
API key in the headers.
5:21
You got your key ready?
5:24
You won't be able to use the one I am
about to use, because it will be inactive.
5:25
First, we'll need to add our header,
5:29
webClient.Headers.Add.
5:35
This add method has a few overloads.
5:39
One of them uses an enum that has some
predefined headers that are often used.
5:42
Except as a common one.
5:48
It tells the endpoint what
type of data we want.
5:50
So if the service we're requesting can
either send JSON or XML we'd specify JSON.
5:53
In our case the default is JSON so
we won't need it.
5:59
The header we need to use
though is a custom header and
6:02
it won't be on this list.
6:05
We need to use the last overload here
which just takes two strings one for
6:09
name and one for value.
6:14
We'll go back to the documentation and
grab the header name we need.
6:17
All right, and we can paste that in here,
then I'm gonna paste in my API key.
6:25
Okay, that should be all we
need to make this web request.
6:35
Let's try it out in main.
6:39
I'll replace this GetGoogleHomePage
with our new method.
6:44
GetNewsForPlayer and
I'll pass it Diego Valari.
6:47
And one more parenthesis.
6:55
Okay, let's run with control F5.
6:58
And we've got some data.
7:03
Next step we'll need to deserialize
these results into our new search class.
7:05
[BLANK-AUDIO]
7:10
You need to sign up for Treehouse in order to download course files.
Sign up