一  通过Get请求验证域名是否已被注册


万网提供了一个免费的接口来查询域名是否已被注册,http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=域名

比如说我们在浏览器中输入:http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=aliyun.com

最后返回:

<?xml version="1.0" encoding="gb2312"?>
<property>
<returncode>200</returncode>
<key>aliyun.com</key>
<original>211 : Domain exists</original>
</property>

<original>211 : Domain exists</original> 这一行中的211就是我们判断一个域名是否注册的关键所在了。通过这个接口进行查询,在这里只会返回两种状态,210或者211,210表示可以使用,211则是已经被注册了


比如我们查询:http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=aliyunbaidu.com

最后返回:

<?xml version="1.0" encoding="gb2312"?>
<property>
<returncode>200</returncode>
<key>aliyunbaidu.com</key>
<original>210 : Domain name is available</original>
</property>

可以看出,aliyunbaidu.com这个域名还没有被注册


下面开始贴代码,一些关键的地方已经有注释了:

/**
	 * 判断一个域名是否已被注册,用的万网的接口
	 * 这里采用的单线程,因为是免费的接口,所以线程过大容易被封IP
	 * @param domain 待检测域名,如:baidu.com
	 * @return 是否可以注册
	 * */
	public boolean domainIsAvailable(String domain){
		boolean isAvailable = false;  //该域名是否可用
		try {
			URL url = new URL("http://panda.www.net.cn/cgi-bin/check.cgi?area_domain=" + domain);
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setRequestMethod("GET");
			connection.setConnectTimeout(10000);  //毫秒
			connection.setReadTimeout(5000);
			
			InputStream inputStream = new BufferedInputStream(connection.getInputStream());
			
			BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
			String line = "";  //每次读取一行数据
			String reg = "<original>(.*?)</original>";  //正则
			while((line = reader.readLine()) != null){
				if(line.matches(reg)){
//					System.out.println(line);
					//只有两种状态,210表示可用,211表示不可用
					String state = line.substring(1013);
					if("210".equals(state))
						isAvailable = true;					
				}
			}
			
		}  catch (IOException e) {
			e.printStackTrace();
		}		
		return isAvailable;
	}

下面进行实例调用:

		String domain = "aliyunbaidu.com";
		Test test = new Test();
		boolean check = test.domainIsAvailable(domain);
		System.out.println(domain + " 是否可用:" + check);

返回结果如下:

aliyunbaidu.com 是否可用:true


二 Post请求简单实例

/**
	 * POST请求测试
	 * */
	public void POSTTest(){
		try {
			URL url = new URL("http://localhost:8080/Demo/jsp/show_get");
			HttpURLConnection connection = (HttpURLConnection) url.openConnection();
			connection.setRequestMethod("POST");
			connection.setRequestProperty("Content-Type""application/x-www-form-urlencoded");
			connection.setDoOutput(true);  //这里因为post请求有数据传输,一定要是true
			connection.setDoInput(true);
			connection.setUseCaches(false);
			
			String str = "str=aaavc";
			OutputStream outputStream = connection.getOutputStream();
			outputStream.write(str.getBytes("UTF-8"));
			outputStream.flush();
			outputStream.close();
			
			System.out.println(connection.getResponseCode());
			if(connection.getResponseCode() == 200){
				InputStream inputStream = connection.getInputStream();
				BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
				StringBuffer stringBuffer = new StringBuffer();
				String line = "";
				while((line = reader.readLine()) != null){
					stringBuffer.append(line + "\n");
				}
				System.out.println(stringBuffer.toString());
				
			}
					
		} catch (MalformedURLException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
	}