0

Webサービス、特にFoursquareAPIとGoogleMap Webサービスを利用する非常に単純なJavaアプリケーション(モバイルではなくデスクトップアプリ)を開発することを計画しています。ユーザーの住所を取得し、Googleマップを使用して住所を緯度と経度に変換し、この結果をfoursquare APIメソッドの会場メソッド(近くと検索)にフィードして、近くの会場の結果を取得し、ユーザーに表示する予定です。質問は次のとおりです。

  1. これはすべてJavaで実行できますか?
  2. このようなhttp://api.foursquare.com/v1/venuesをJavaで呼び出して、結果を取得するにはどうすればよいですか?Xpathを使用して結果を解析できることはわかっています。これらのpostメソッドをJavaで呼び出して、パラメーターを渡す方法がわかりません。
  3. foursquare APIを使用するサンプルJavaコードはありますか?
  4. モバイル以外で使用した場合、foursquare APIは機能しますか?

すべての初心者の質問でごめんなさい。

4

2 に答える 2

1
  1. はい、それは可能ですが、100%の自信を持って答えるのに十分なFourSquareAPIを知りません。
  2. そのURLへのURL接続を確立し、APIに準拠するGETまたはPOSTリクエストを作成します。
  3. Googleはあなたの友達です。
  4. あなたは確かにHTTPリクエストをすることができます。結果をどうするかは別の問題です。

アップデート:

私はFourSquareにサインアップしていません。これを試してみて、それがあなたのために働くかどうか私に知らせてください:

package foursquare;

import java.io.*;
import java.net.Authenticator;
import java.net.URL;

/**
 * FourSquareDemo
 * User: Michael
 * Date: 10/19/10
 * Time: 7:53 PM
 */
public class FourSquareDemo
{
    private static final int DEFAULT_CAPACITY = 4096;
    private static final String DEFAULT_URL = "http://api.foursquare.com/v1/";
    private static final String DEFAULT_EMAIL = "you@gmail.com";
    private static final String DEFAULT_PASSWORD = "password";

    public static void main(String[] args)
    {
        long startTime = System.currentTimeMillis();
        long endTime = 0L;
        try
        {
            String downloadSite = ((args.length > 0) ? args[0] : DEFAULT_URL);
            URL url = new URL(downloadSite + "history");
            Authenticator.setDefault(new BasicAuthenticator(DEFAULT_EMAIL, DEFAULT_PASSWORD));
            String contents = readFromUrl(url);

            PrintStream ps = ((args.length > 1) ? new PrintStream(new FileOutputStream(new File(args[1]))) : System.out);
            printToStream(ps, contents);
        }
        catch (Exception e)
        {
            e.printStackTrace();
        }
        finally
        {
            endTime = System.currentTimeMillis();
            System.out.println("wall time: " + (endTime - startTime) + " ms");
        }
    }

    private static void printToStream(PrintStream ps, String contents) throws IOException
    {
        ps.println(contents.toString());
        ps.close();
    }

    private static String readFromUrl(URL url) throws IOException
    {
        StringBuilder contents = new StringBuilder(DEFAULT_CAPACITY);

        BufferedReader br = null;

        try
        {
            InputStream is = url.openConnection().getInputStream();

            br = new BufferedReader(new InputStreamReader(is));
            String line;
            String newline = System.getProperty("line.separator");
            while ((line = br.readLine()) != null)
            {
                contents.append(line).append(newline);
            }
        }
        finally
        {
            try
            {
                if (br != null)
                {
                    br.close();
                }
            }
            catch (IOException e)
            {
                e.printStackTrace();
            }
        }

        return contents.toString();
    }
}
于 2010-10-19T20:42:20.673 に答える
0

Foursqare APIは、単純なHTTP getメソッド(別名RESTful Webサービス)を使用します。JavaでRESTfulWebサービスを呼び出す方法はたくさんあります。以下を参照してください。

  • JavaでのRESTfulWebサービスの実装-JAX -RSを示し、JSONも使用します(XMLの代わりにFoursquareで使用できます)
  • Apache CXF -Webサービスで人気のあるフレームワークであり、RESTfulクライアントの作成もサポートしています。
于 2010-10-19T20:45:49.047 に答える