Java restful动态Web访问dropbox

时间:2015-09-21 22:40:29

标签: java web-services rest dropbox

我擅长 javaSE ,但对 javaEE 概念却很陌生。我想创建一个可以在Dropbox上执行任务的Web服务,例如上传文件,获取文件等。 通过关注dropbox core api的基本文档,我到目前为止能够开发一个简单的桌面控制台应用程序来访问和上传Dropbox内容。

这就是我所做的:

package com.teamincredibles.dropboxapp;
import com.dropbox.core.*;
import java.io.*;
import java.util.Locale;

public class Main {
  public static void main(String[] args) throws IOException, DbxException {
    // Get your app key and secret from the Dropbox developers website.
    final String APP_KEY = "xxxxxxxxxxx";
    final String APP_SECRET = "xxxxxxxxxxx";

    DbxAppInfo appInfo = new DbxAppInfo(APP_KEY, APP_SECRET);

    DbxRequestConfig config = new DbxRequestConfig("JavaTutorial/1.0",
      Locale.getDefault().toString());
    DbxWebAuthNoRedirect webAuth = new DbxWebAuthNoRedirect(config, appInfo);

    // Have the user sign in and authorize your app.
    String authorizeUrl = webAuth.start();
    System.out.println("1. Go to: " + authorizeUrl);
    System.out.println("2. Click \"Allow\" (you might have to log in first)");
    System.out.println("3. Copy the authorization code.");
    String code = new BufferedReader(new InputStreamReader(System.in)).readLine().trim();

    // This will fail if the user enters an invalid authorization code.
    DbxAuthFinish authFinish = webAuth.finish(code);
    String accessToken = authFinish.accessToken;

    DbxClient client = new DbxClient(config, accessToken);

    System.out.println("Linked account: " + client.getAccountInfo().displayName);

    File inputFile = new File("work.txt");
    FileInputStream inputStream = new FileInputStream(inputFile);
    try {
      DbxEntry.File uploadedFile = client.uploadFile("/work.txt",
        DbxWriteMode.add(), inputFile.length(), inputStream);
      System.out.println("Uploaded: " + uploadedFile.toString());
    } finally {
      inputStream.close();
    }

    DbxEntry.WithChildren listing = client.getMetadataWithChildren("/");
    System.out.println("Files in the root path:");
    for (DbxEntry child: listing.children) {
      System.out.println("  " + child.name + ": " + child.toString());
    }

    FileOutputStream outputStream = new FileOutputStream("work.txt");
    try {
      DbxEntry.File downloadedFile = client.getFile("/work.txt", null,
        outputStream);
      System.out.println("Metadata: " + downloadedFile.toString());
    } finally {
      outputStream.close();
    }
  }
}

现在我很困惑如何制作这样的网络服务,我可以在网址中添加操作,例如:http://localhost:8080//myservice/dropbox/access/all

希望你理解我的观点。

我想要一个restfull网络服务,我可以在其他网络服务中调用。我已经搜索了大量的网页,但找不到一种我能理解的简单方法。

任何帮助都是Appriciated。

0 个答案:

没有答案