i am a newbie android coder.
i am writing a practicing app to search Movie name. I have made XML and java which has a textbox for user to type movies name, but i don't know how to search this over internet!
as i know i have to use IMDb or TMDb API, but i have no idea how to use it! i found this site :
http://www.javacodegeeks.com/2010/10/android-full-app-part-2-using-http-api.html
but there is no explanation for codes. and also i didn't found any other learning.
can somebody please write a full explanation for how to use IMDb or TMDb API for newbie?
it would be a great help to new coders like me! :)
you are most likely going to interact with these api using HttpClient. Go thru those examples first, like pulling in twitter feeds etc. Then you will be ready for the specifics of IMDb. So you are going to have to
1) Determine the base request url. Maybe it is imdb.com/api (it will be in the documentation).
2) you might need to sign up for a key which you will pass over as a parameter. (also in the documentation)
3) read the documentation to determine if you are going to use get/post since it effects how you encode the parameters. One of those parameters might be the key or you might not need a key.
4) In general you should try first in browser client before writing code, just to see what is returned. Then do the same in your code before processing.
5) all http clients are much the same, but determine what you are getting back. Is is JSON, use simple_json to parse. Is it XML, then probably use a SAXParser to handle what is returned. If you have specific questions please post them. The best we can do is give you sort of an algorithm like this as to how you go about it.
Thats really all there is to it. Just make sure you know the right url, if there is a key, if the communication is via get or post, if they are using REST you will encode url without parameters usually. Then its just a matter of parsing what you get back.
The real answer is take it one step at a time. At each step, ask if you have questions. The truth is unless we have used a particular protocol no one knows up front. Trust me, just take it one step at a time, and you will be able to handle any http api.
Related
I want to write an app get the information from posts (mostly about new classes) on my university website then make some annoucement once there is new class.
I've google and see RSS mostly, but the page I want to get data does not use RSS. I read something about website using service so we can read XML in the app, but I don't know if the page using service or not. Last resort is using host (somee for example) and js to get text from the page, then the app could read data from the host.
That's all I have right now, but it's still unclear for me. Any suggestion about what to read, what should I use?? Much appreciation
I think the first thing you do should be to ask your uni if they provide any feed or webservice for these data that you could use.
If they don't, or don't answer at all, your last resort would be scraping. To do this, you can use an HTML parser, like jsoup, and then go through the HTML data, getting information as you need.
To see if there are been changes, you would just have to cache your current processed information, probably in a database, and compare the new one to the one currently saved.
Hello I am beginner to Android development so I want to ask how to create dynamically changeable database (content) in Android?
I'm aware of sqlite shared preferences but how can I interact with them via internet and add new information like news apps? Could Parse help?
This is not a answer, but a comment rather, I don't have the 50 rep required to comment.
It all depends on the sort of functionality you want to achieve. I.e. do you want to be able to push new content to the device using the internet such as push notifications.
OR
Do you want the app to make a http connection to a api or your own news service on startup or on button press for example?
UPDATE
Ok you have decided you want something similar to option 2. I am not going to write code for you but I will point you in the right direction and if you get stuck, post a question.
Please take a look at:-
https://play.google.com/store/apps/details?id=com.rsoftware.news
If you have decided this is what you want or similar, this application uses an API calling infrastructure.
The API they use is called FAROO.
http://www.faroo.com/hp/api/api.html
I suggest reading the documentation, deciding if this is indeed what you want, then sign up and get a API key. Afterall it is free! enjoy coding, enjoy the errors that you will receive and persevere =).
How to make a API call
I suggest when using a API, test the queries through the browser first of all or use something like Runscope for testing their services. So first get their URL which is:-
http://www.faroo.com/api
If we were to go to this url we will get a 401 response code, which means unauthorised. This is because we haven't added our unique API key to the html query. So this url can take parameters. We simply append a ? to the end of the url and supply the parameters that FAROO offers such as:-
q which stands for query (what do you want FAROO to search for?)
start which is the number it should start from
length which is the number of results you want FAROO to return
key which is your unique to make the requests
etc etc...
So an example of a complete url would be:-
http://www.faroo.com/api?q=iphone&start=1&length=10&l=en&src=news&f=json
This url is for demonstration purposes... your own url will have a key=YourAPIKey
Also notice how the parameters are separated by & symbols i.e. q=iphone&start=1 so this part q we know stands for query which is iphone & start=1 & so on.
Hope this helps.
I have been dealing with a twitter application in android. I used Oauth authentication and did some search for a given keyword.
The problem is rate limit. I can't perform to many searches.
Well after an exhaust search I came across with that link:Using the Search API
It says that:
As users, the best thing for you to do is perform your search from twitter.com/search
Then I found an application in Google Play Twitter Search which doesn't even use authentication and performs unlimited searches.
I doubt Twitter Search developer has used that logic.
Would it be possible to make the search directly from twitter.com/search ?
If yes, what libraries/methods/ways should I follow?
Would it be possible to make the search directly from
twitter.com/search ?
Technically yes, but that should be avoided if at all possible. You would have to parse the HTML and that is a both slow and error prone process.
What libraries/methods/ways should I follow?
You should stick to the official API. I realise that this rate limit is kind of in the way, but I am confident you can mitigate the problem by reducing the overall amount of calls to the API and by more efficiently using each call. You have to remember that this is the official Twitter API. Twitter certainly wants for Twitter apps to be good and awesome and while the rate limit of 100 calls per hour seems pretty low it should normally be more than enough. Should the rate limit be reached anyway you just need some proper error handling. I know for a fact that most third party twitter apps just kind of freeze their content when reaching the rate limit. An error is displayed to inform the user that he cannot update anymore for an hour, but he can still continue using the app as before with all the cached data from the previous calls.
Since you haven't posted any code I am not sure what else to tell you just try to be smart about each call. Use cached data as much as possible and only perform API calls when absolutely necessary.
EDIT: I think parsing data from https://mobile.twitter.com/search would be best in your case. Just look for the div with the class timeline. Every <table /> in this div contains one tweet. It shouldn't be that difficult to parse.
I tested it using HtmlCleaner:
HtmlCleaner cleaner = new HtmlCleaner();
TagNode root = cleaner.clean("https://mobile.twitter.com/search?q=asdf");
... // Filter out div with class "timeline"
List<? extends TagNode> tweets = timeLineDiv.getElementListByAttValue("class", "tweet", false, true);
In my app i need something like that.In my app a user can easily be a member by signing up.Now when a user become a member then he can communicate with other members.Suppose a want to send a message(same message) to all users, same location as he is.Or it may be something like that a user want to send a message(same message) to another 5 users whom he knows.
How can i do that.
I googled may times.I thought web-service can do that job.But i didn't right way to do that.
Can anyone how can i do that with references ???
You can refer following:
Simple PHP With MySQl(To get basics, No Interaction with Android)
http://davidwalsh.name/web-service-php-mysql-xml-json
One Demo:(Interaction with Android)
http://www.codeproject.com/Articles/267023/Send-and-receive-json-between-android-and-php
Good Tutorial:(Interaction with Android)
part1-http://guruparang.blogspot.in/2012/11/connect-android-and-mysql-via-php.html
part2-http://guruparang.blogspot.in/2012/12/connect-android-and-mysql-via-php.html
Best Tutorial (Here u can get All the idea):
http://www.androidhive.info/2012/01/android-login-and-registration-with-php-mysql-and-sqlite/
Use parse.com
Download the sample app. The sample app works both locally in Android and on the server-side. It does the hardest part for you.
Just modify it to make it fit your needs.
all
I have searched this in google, but I confused with lot of sites which are no clear step by step procedure I found.
If any have Idea what are all the things need to be done. Please guide me...!
Thanks in advance.
This looks similar the demo app in "Beginning Android" book. There they will create the http request and will send data to the server. They will get a HTML response, in which they will parse the data and displays to the user.
The main problem is, if u hard code the tag names, in future if it gets changes, then your app may not work. So better check whether there is any library (jar file) available for the wikipedia app. and try to make use of that.
Regards,
SSuman185