2010-04-29 37 views

回答

2

可以使用java.net.URLConnection此:

String url = "http://facebook.com/some/api"; 
String charset = "UTF-8"; 
String param1 = URLEncoder.encode("value1", charset); 
String param2 = URLEncoder.encode("value2", charset); 
String query = String.format("param1=%s&param2=%s", param1, param2); 

URLConnection urlConnection = new URL(url).openConnection(); 
urlConnection.setUseCaches(false); 
urlConnection.setDoOutput(true); // Triggers POST. 
urlConnection.setRequestProperty("accept-charset", charset); 
urlConnection.setRequestProperty("content-type", "application/x-www-form-urlencoded"); 

OutputStreamWriter writer = null; 
try { 
    writer = new OutputStreamWriter(urlConnection.getOutputStream(), charset); 
    writer.write(query); // Write POST query string (if any needed). 
} finally { 
    if (writer != null) try { writer.close(); } catch (IOException logOrIgnore) {} 
} 

InputStream response = urlConnection.getInputStream(); 
// Now do your thing with the facebook response. 

另外,您也可以使用更convenienced HttpClient API此:

String url = "http://facebook.com/some/api"; 
String charset = "UTF-8"; 
List<NameValuePair> params = new ArrayList<NameValuePair>(); 
params.add(new BasicNameValuePair("param1", "value1")); 
params.add(new BasicNameValuePair("param2", "value2")); 
UrlEncodedFormEntity query = new UrlEncodedFormEntity(params, charset); 

HttpClient client = new DefaultHttpClient() 
HttpPost post = new HttpPost(url); 
post.setEntity(query); 
InputStream response = client.execute(post).getEntity().getContent(); 
// Now do your thing with the facebook response. 
+0

非常感謝! 我剛剛開始使用http://restfb.com/,它的工作原理相當不錯! – Eric 2010-05-03 13:15:09