foursquare API和java
我计划开发一个非常简单的java应用程序(不是移动应用程序,而是桌面应用程序),它利用web服务,特别是Foursquare API和Google Map web服务。我计划获取用户地址,然后使用谷歌地图将地址转换为纬度和经度,然后将此结果提供给foursquare API method Vincement methods(Nearest和search),以获取附近场馆的结果并将其显示给用户。问题是:foursquare API和java,java,google-maps,foursquare,Java,Google Maps,Foursquare,我计划开发一个非常简单的java应用程序(不是移动应用程序,而是桌面应用程序),它利用web服务,特别是Foursquare API和Google Map web服务。我计划获取用户地址,然后使用谷歌地图将地址转换为纬度和经度,然后将此结果提供给foursquare API method Vincement methods(Nearest和search),以获取附近场馆的结果并将其显示给用户。问题是: 这些都可以用Java实现吗 如何在java中调用这样的函数并得到结果?我知道我可以使用Xpat
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();
}
}
Foursqare API使用简单的HTTP get方法(也称为RESTful web服务)。 Java中有许多调用RESTful web服务的方法,请参见:
- -显示JAX-RS,还使用JSON(可以在Foursquare中使用,而不是XML)
- -一个流行的web服务框架,还支持创建RESTful客户端