本科毕业设计答辩
Upcoming SlideShare
Loading in...5
×

Like this? Share it with your network

Share

本科毕业设计答辩

  • 348 views
Uploaded on

 

More in: Technology
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Be the first to comment
No Downloads

Views

Total Views
348
On Slideshare
348
From Embeds
0
Number of Embeds
0

Actions

Shares
Downloads
2
Comments
0
Likes
1

Embeds 0

No embeds

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
    No notes for slide

Transcript

  • 1. 北京理工大学本科生毕业设计答辩JWeiBo: an SDK Solution for Sina WeiBo RESTful Open API Date: 06/08/2011 Mentor: Dai Yintao Student: Deng Litao
  • 2. Outline1. Background2. Related work3. Requirement4. Design5. Implementation6. Sample codes7. Future work
  • 3. Background Microblogging’s characters Microblogging’s bombing development  Increasing demands for third-party applications.
  • 4. Background RESTful Web Services 1: The base URL (or URI) for the Web Services. 2: The Internet media type for the data supported by the Web Services, XML and JSON.3: The set of operations of HTTP methods defined on the resources, such as GET, POST, PUT and DELETE.
  • 5. Related Work JWeiBo’s role 1: Request from outside. 2: Data demand from Controller to Model. 3: Data interchange between application and Sina WeiBo. 4: Data from Model to Controller. 5: Data from Controller to View. 6: Response to outside.
  • 6. Requirement Function Data flow in swim lane 1: The request parameters could be viewed as the input. 2: Initializing the HTTP call.3: Invoke the HTTP call by specified scheme. Finally, the HTTP headers and body can be used as the output.
  • 7. Design Architecture of JWeiBo 1: Initializing API. 2: Constructing Request. 3: HTTP Transaction. 4: Fetching Response.
  • 8. Design Program interface between classes
  • 9. Implementation HTTPHTTPManager(SinaWeiBoHTTPManager)HTTP Basic: encodedBasic="Basic"+new String(new BASE64Encoder().encode((credential.getUsername() +":"+ credential.getPassword()).getBytes())); httpGet.addHeader("Authorization", encodedBasic);
  • 10. Implementation HTTPHTTPManager(SinaWeiBoHTTPManager)OAuth: Steps in OAuth authentication
  • 11. Implementation ResponseResponse(SinaWeiBoResponse)Data format: XML, JSON.Ultimate Container: JavaBean (Status, User, Comment, Emotion……). private long id, String screen_name; public void assignXML(Element elem), assignJSON(JSONObject jsonObject){} public static List<User> parseXML(Document document), parseJSON(JSONArray jsonArray){} public static User parseXMLAsElement(Document document), parseJSONAsObject(JSONObject jsonObject) public static List<User> parseJSONAsHybrid(JSONObject jsonObject){ @Override public String toString(), boolean equals(Object object), int hashCode()
  • 12. Sample codesSource Code:api = SinaWeiBo.builder().initialize(appKey,appSecret).build();request = ((SinaWeiBo)api).publicTimeline().count(10).build();response = request.httpCall();System.out.println(response.toString());statuses = PublicTimeline.parser(response).parse();for(Status status : statuses){ System.out.println(status.toString());}Output:XML JSON
  • 13. Acknowledgments It has been a great pleasure to work with my advisorDai Yintao, during the course E-Commerce and the graduationproject; he impressed me a lot by his critical thinking andkindness. Zhao Fengnian also deserves a great of thanks, for heintroduced me to the Web Technology and led to all of the workI have done about the applications and systems on network. I would like to thank all of my classmates whoaccompanied me through the graduation project; you gave me somany strong encouragements and selfless cares.