java 实现ajax发送http请求,直接访问服务器

本文介绍如何在Java中使用Ajax发送POST类型的HTTP请求到服务器,并展示了客户端发送和服务器端接收的代码示例,包括URL编码和解码过程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 //-----------------------------客户端请求时需要把中文转码 ---------------------
   /** 
     * 向指定URL发送POST方法的请求 
     *@paramurl 发送请求的URL 
     *@returnURL所代表远程资源的响应 
     */ 
   publicstaticString sendPost(Stringurl, Stringparam) { 
      OutputStreamWriterout= null;
         BufferedReaderin= null;
         Stringresult= "";
        try{
             URLrealUrl= new URL(url);
            // 打开和URL之间的连接
             URLConnectionconn= realUrl.openConnection();
            // 设置通用的请求属性
            conn.setRequestProperty("accept","*/*");
            conn.setRequestProperty("connection","Keep-Alive");
            conn.setRequestProperty("user-agent",
                    "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");
            // 发送POST请求必须设置如下两行
            conn.setDoOutput(true);
            conn.setDoInput(true);
            // 获取URLConnection对象对应的输出流             
            out= new OutputStreamWriter(conn.getOutputStream(),"UTF-8");
            // 发送请求参数
            out.write(param);
            // flush输出流的缓冲
            out.flush();
            // 定义BufferedReader输入流来读取URL的响应
            in= new BufferedReader(
                    newInputStreamReader(conn.getInputStream()));
             Stringline;
            while((line= in.readLine()) !=null) {
                result+= line;
             }
         }catch(Exceptione) {
             System.out.println("发送 POST 请求出现异常!"+e);
            e.printStackTrace();
         }
        //使用finally块来关闭输出流、输入流
        finally{
            try{
                if(out!=null){
                    out.close();
                 }
                if(in!=null){
                    in.close();
                 }
             }
            catch(IOExceptionex){
                ex.printStackTrace();
             }
         }
        returnresult;
     }   
 
   //提供主方法,测试发送POST请求 
   publicstaticvoidmain(Stringargs[])throwsNoSuchAlgorithmException, IOException { 
         //文章标题
        Stringtitle="测试title";
       
       //发送POST请求 
       TestPost.sendPost("http://localhost:8080/test/post"
           "title="+newString(java.net.URLEncoder.encode(title,"utf-8").getBytes(),"ISO-8859-1")+"); 
    }


//========================服务器端需要转码======
     @POST
     @Path("/post")
     publicvoidt(@FormParam("title") String title)throwsUnsupportedEncodingException{
             System.out.println(java.net.URLDecoder.decode(newString(title.getBytes("ISO-8859-1"),"UTF-8"),"UTF-8"));
     }

  
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值