JAVA HTTP通信
JAVA HTTP通信
转自:http://blog.sina.com.cn/s/blog_5dabcb7b0100hpho.html
package cn.core.util;
import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
public class HttpInvoker {
public static final String GET_URL = "http://www.baidu.cn";
public static final String POST_URL = "http://www.baidu.cn";
public static void readContentFromGet() throws IOException{
// 拼凑get请求的URL字串,使用URLEncoder.encode对特殊和不可见字符进行编码
//String getURL = GET_URL + "?username=" + URLEncoder.encode("fatman" ,"utf-8");
String getURL = GET_URL;
URL getUrl = new URL(getURL);
// 根据拼凑的URL,打开连接,URL.openConnection函数会根据URL的类型,
// 返回不同的URLConnection子类的对象,这里URL是一个http,因此实际返回的是HttpURLConnection
HttpURLConnection connection = (HttpURLConnection) getUrl.openConnection();
// 进行连接,但是实际上get request要在下一句的connection.getInputStream()函数中才会真正发到
// 服务器
connection.connect();
// 取得输入流,并使用Reader读取
BufferedReader reader = new BufferedReader( new InputStreamReader(connection.getInputStream()));
System.out.println( " ============================= " );
System.out.println( " Contents of get request " );
System.out.println( " ============================= " );
String lines;
while((lines = reader.readLine()) != null ){
System.out.println(lines);
}
reader.close();
connection.disconnect();
System.out.println( " ============================= " );
System.out.println( " Contents of get request ends " );
System.out.println( " ============================= " );
}
public static void readContentFromPost() throws IOException{
// Post请求的url,与get不同的是不需要带参数
URL postUrl = new URL(POST_URL);
// 打开连接
HttpURLConnection connection = (HttpURLConnection) postUrl
.openConnection();
// 设置是否向connection输出,因为这个是post请求,参数要放在
// http正文内,因此需要设为true
connection.setDoOutput( true );
connection.setDoInput( true );
//有的请求不支持POST请求
//connection.setRequestMethod( "POST" );
connection.setUseCaches( false );
connection.setInstanceFollowRedirects( true );
//connection.setRequestProperty("Content-Type" ,"application/x-www-form-urlencoded");
connection.setRequestProperty("Content-Type" ,"text/html");
connection.connect();
// DataOutputStream out = new DataOutputStream(connection.getOutputStream());
// String content ="firstname=" + URLEncoder.encode( "一个大肥人" , "utf-8" );
// out.writeBytes(content);
// out.flush();
// out.close(); // flush and close
BufferedReader reader = new BufferedReader( new InputStreamReader(connection.getInputStream()));
String line;
System.out.println( " ============================= " );
System.out.println( " Contents of post request " );
System.out.println( " ============================= " );
while ((line = reader.readLine()) != null ){
System.out.println(line);
}
System.out.println( " ============================= " );
System.out.println( " Contents of post request ends " );
System.out.println( " ============================= " );
reader.close();
connection.disconnect();
}
public static void main(String[] args){
// TODO Auto-generated method stub
try{
//readContentFromGet();
readContentFromPost();
} catch (IOException e){
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}