API Foursquare и Java - PullRequest
       23

API Foursquare и Java

0 голосов
/ 20 октября 2010

Я планирую разработать очень простое Java-приложение (не мобильное, а настольное), которое использует веб-сервисы, в частности API Foursquare и веб-сервис Google Map. Я планирую получить адрес пользователя, а затем с помощью Google Map преобразовать адрес в широту и долготу, а затем передать этот результат в метод API-интерфейсов foursquare. Вопрос:

  1. Это все возможно в Java?
  2. Как я могу назвать такие http://api.foursquare.com/v1/venues в Java и получить результат? Я знаю, что могу использовать Xpath для разбора результата. Я просто не уверен, как назвать эти сообщения методы в Java и передать ему параметры.
  3. Есть ли какой-нибудь пример кода Java, который использует API Foursquare там?
  4. Будет ли работать API-интерфейс foursquare, если он используется не на мобильных устройствах?

Извините за все вопросы о новичках.

Ответы [ 2 ]

1 голос
/ 20 октября 2010
  1. Да, это возможно, но я не знаю API FourSquare достаточно хорошо, чтобы ответить с уверенностью 100%.
  2. Установите URL-соединение с этим URL и создайте запрос GET или POST, которыйсоответствует их API.
  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();
    }
}
0 голосов
/ 20 октября 2010

Foursqare API использует простые методы HTTP get (a.k.a RESTful веб-сервис). Существует множество способов вызова веб-сервисов RESTful на Java, см .:

  • Реализация веб-сервисов RESTful в Java - показывает JAX-RS, также использует JSON (который может использоваться в Foursquare вместо XML)
  • Apache CXF - популярный фреймворк для веб-сервисов, также поддерживает создание клиентов RESTful.
...