using System;
 
 
using System.Collections.Generic;
 
 
using System.Linq;
 
 
using System.Text;
 
 

 
 
using System.Net;
 
 
using System.Net.Sockets;
 
 
using System.IO;
 
 
using System.Xml.Serialization;
 
 
using System.Threading;
 
 
using System.Web;
 
 
namespace ConsoleApplication3
 
 
{
 
 
  
 
 
  
 
 
      
 
 
      
 
 
          
 
 
          
 
 
              
 
 
              
 
 
                  
 
 
                  
 
 
                      
 
 
                      
 
 
                          
 
 
                          
 
 

 
 
                          
 
 
                          
 
 

 
 
                          
 
 
                          
 
 
                      
 
 
                      
 
 
                      
 
 
                          
 
 
                          
 
 
                          
 
 
                      
 
 
                      
 
 
                  
 
 
                  
 
 

 
 
                  
 
 

 
 
                  
 
 
                  
 
 
                  
 
 
                  
 
 
                  
 
 
                  
 
 

 
 
                    
 
 
                  
 
 
                   
 
 
                  
 
 
                  
 
 
                  
 
 
                      
 
 
                      
 
 
                      
 
 

 
 
                      
 
 
                  
 
 
                  
 
 
                  
 
 
              
 
 
          
 
 
          
 
 
          
 
 
              
 
 
              
 
 
              
 
 
          
 
 

 
 
      
 
 

 
 
      
 
 
      
 
 
          
 
 

 
 
          
 
 
      
 
 
          
 
 
          
 
 
          
 
 
 
             string filename = Path.GetFileName(ctx.Request.RawUrl); 
 
 
 
 
             
 
 
 

 
 
  
 
 
           
 
 
          
 
 
          
 
 
          
 
 
              
 
 
              
 
 
              
 
 
          
 
 
      
 
 
  
 
 
}
 
 
 
  
 
 
 
  
 
 
 
  
 
 

   Android客户端: 
 
 
 

    public static void Register(final Handler handler, final Context context, 
  
 
  

    final String userId, final String userName,final int groupId, final String password){ 
  
 
  

    new Thread(new Runnable(){ 
  
 
  
   
      
      
   public void run() { 
  
 
  
   
      
      
   
 
  
   
      
      
   
 
  
   
      
      
   
 
  
   
      
      
   
 
  
   
      
      
   
 
  
   
      
      
   
 
  
   
      
      
   
 
  
   
      
      
    try {   
   
 
  
   
      
      
   
 
  
   
      
      
   String tmp   =   java.net.URLEncoder.encode(userName,   "utf-8");   
  
 
  
   
      
      
    URL url = new URL(URL+"?type=Register&userId="+userId+"&password="+password+"&groupId="+groupId+"&userName="+tmp);   
     
   
 
  
   
      
      
      
      
      
      
   // HttpURLConnection   
     
   
 
  
   
      
      
      
      
      
      
   HttpURLConnection httpconn = (HttpURLConnection) url.openConnection();   
     
   
 
  
   
      
   
 
  
   
      
      
      
      
      
      
   if (httpconn.getResponseCode() == HttpURLConnection.HTTP_OK) {   
     
   
 
  
   
      
      
      
      
      
      
      
      
      
   
 
  
   
      
      
      
      
      
      
      
      
   InputStreamReader isr = new InputStreamReader(httpconn.getInputStream(), "utf-8");   
     
   
 
  
   
      
      
      
      
      
      
      
      
   int i;   
     
   
 
  
   
      
      
      
      
      
      
      
      
      
     
   
 
  
   
      
      
      
      
      
      
      
      
   // read   
     
   
 
  
   
      
      
      
      
      
      
      
      
   while ((i = isr.read()) != -1) {   
     
   
 
  
   
      
      
      
      
      
      
      
      
      
      
   content = content + (char) i;   
     
   
 
  
   
      
      
      
      
      
      
      
      
   }   
     
   
 
  
   
      
      
      
      
      
      
      
      
   isr.close();   
      
     
   
 
  
   
      
      
      
      
      
      
   }   
     
   
 
  
   
      
      
      
      
      
      
   //disconnect   
     
   
 
  
   
      
      
      
      
      
      
   httpconn.disconnect();   
     
   
 
  
 
   
 
  
   
   
 
  
   
   
 
  
   
   
 
  
   
      
      
   }//run 
  
 
  

    }).start();//thread 
  
 
  

    }




注意:



1.中文乱码问题



  在客户端采用如下形式



 String tmp   =   java.net.URLEncoder.encode(userName,   "utf-8");  



  服务器端



 string filename = Path.GetFileName(ctx.Request.RawUrl);



 string userName = HttpUtility.ParseQueryString(filename).Get("userName");//避免中文乱码





 服务器端需要引入: using System.Web;



  此时可能提示找不到库,则在项目右键添加引用找到  System.Web.dll勾选即可





2.[System.Net.HttpListenerException] = {"拒绝访问。"}问题



  如果是win7或者win8,在cmd.exe上右键,以管理员身份运行,然后执行下面的命令



  netsh http add urlacl url=http://本机IP:1500/ user=用户名(如Administrator)



 



3.记得关闭防火墙,或者只开放指定端口,步骤如下:



      s tep1、点击控制面板


  

  step2、选择windows防火墙,点击高级设置


  


  step3、在弹出的“高级安全windows防火墙”点击“入站规则”,在右侧“操作”栏点击“入站规则”下的“新建规则…”,此时会弹出一个窗口让你设置。剩下的就非常傻瓜化了。


  


  step4、弹出“新建入站规则向导”-规则类型-选中“端口”,点击下一步。选择规则应用的协议“TCP/UDP”如果是TCP你就选择TCP,UDP就选择UDP。再勾选“特定本地端口”在文本框输入您想开放的端口号(例如1521)。


  


  step5、点击下一步,到“连接符合指定条件时应该进行什么操作?”选择“允许连接”。点击下一步到“配置文件”何时应用该规则,勾选“域”、“专用”、“公用”点击下一步。


  


  step6、配置规则名称,随便输入你自己认为好记的规则名称即可。