`

java应用程序向服务器发送request请求,并接受响应

阅读更多

下面代码是别人写的,经测试很好用

//get形式发生请求

public static String sendGet(String url,String param){
  String result = "";
  BufferedReader in = null;
  try{
   String urlNameString = url+"?"+param;
   URL realUrl = new URL(urlNameString);
   //发送请求
   URLConnection connection  = realUrl.openConnection();
   connection.setRequestProperty("accept","*/*");
   connection.setRequestProperty("connection","Keep-Alive");
   connection.setRequestProperty("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;SV1)");

   //这句话只会建立一个连接,并不会把请求发出去
   connection.connect();
   //接受响应
   Map<String,List<String>> map = connection.getHeaderFields();
   for(String key:map.keySet()){
    System.out.println(key+"="+map.get(key));
   }
   in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
   String line = null;
   while((line = in.readLine()) != null){
    result +=line;
   }
  }catch(Exception e){
   System.out.println("发送get请求出现错误!"+e);
   e.printStackTrace();
  }
  finally{
   try {
    if(in != null){
     in.close();
    }
   } catch (Exception e2) {
    // TODO: handle exception
    e2.printStackTrace();
   }
  }
  return result;
 }

//post发送

public static String sendPost(String url,String param){
  PrintWriter out = null;
  BufferedReader in = null;
  String result = "";
  try{
   URL realUrl = new URL(url);
     
   URLConnection conn = 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);
   out = new PrintWriter(conn.getOutputStream());
   out.println(param);
   out.flush();
   //conn.getInputStream()这句话会真正的发出请求
   in = new BufferedReader(new InputStreamReader(conn.getInputStream()));
   String line = null;
   while((line = in.readLine()) != null){
    result +=line;
   }
  }catch(Exception e){
   System.out.println("发送POST请求出错!");
   e.printStackTrace();
  }
  finally{
   try{
    if(out != null)
     out.close();
    if(in != null)
     in.close();
   }catch(IOException ex){
    ex.printStackTrace();
   }
  }
  return result;
 }

 

分享到:
评论

相关推荐

    java实现get请求post请求,文件传输

    java实现get请求post请求,文件传输 /** * 发送https请求 * @param requestUrl 请求地址 * @param requestMethod 请求方式(GET、POST) * @param outputStr 提交的数据 * @return 返回微信服务器响应的信息 ...

    request的使用.txt

    在请求消息中发送将使得请求和响应消息都不使用缓存。 max-age指示客户机可以接收生存期不大于指定时间(以秒为单位)的响应。 min-fresh指示客户机可以接收响应时间小于当前时间加上指定时间的响应。 max-stale...

    基于Java实现的Web服务器与测试工具开发.zip

    4)支持request、response的跳转请求。 5)可维持一个客户端与服务器间的会话(session)。 (2)客户端模拟器: 1)通过输入端口连接Web服务器,完成交互。 2)支持get方法的页面请求。 3)支持post方法,可以对参数进行...

    日志:用于HTTP请求和响应日志记录的可扩展Java库

    Logbook是一个可扩展的Java库,用于为不同的客户端和服务器端技术启用完整的请求和响应日志记录。 它满足了以下特殊需求:a)允许Web应用程序开发人员记录应用程序接收或发送的所有HTTP通信b)以易于持久化并在以后...

    java部分试题及答案

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    ArcIMS地图配置文件,地图服务,请求和响应之间的关系

    第3步:客户端发送请求 地图服务一旦运行在空间服务器上,客户端就能够向地图服务发送请求(图1中的第3步)。请求由ArcIMS HTML客户端浏览器、Java客户端浏览器和ColdFusion 及 ActiveX 连接器产生。 ...

    webserver:多线程(例如,基于文件的)Web服务器,具有用Java实现的线程池

    处理程序将从处理程序应用程序收到的响应写入输出流。 处理程序关闭流。 可以在根目录中找到webserver-1.0-SNAPSHOT.jar编译版本。 WebServer侦听连接并将它们委派给工作线程。 Handler -通过解析单个请求并

    java-servlet-api.doc

    一个Javaservlet具有一个生命周期,这个生命周期定义了一个Servlet如何被载入并被初始化,如何接收请求并作出对请求的响应,如何被从服务中清除。Servlet的生命周期被javax.servlet.Servlet这个接口所定义。 所有的...

    毕业设计:ASP上海软件贸易网站设计与实现(源代码)

    RESPONSE对象:这个对象用来控制从服务器发送给客户端的响应 APPLICATION对象:这个对象用来处理所有应用程序共享的WEB应用程序。WEB应用程序是一个脚本和WEB页面的集合。 SESSION对象:这个对象用来存储一个特定...

    java 面试题 总结

    forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。 redirect...

    超级有影响力霸气的Java面试题大全文档

     forward是服务器请求资源,服务器直接访问目标地址的URL,把那个URL的响应内容读取过来,然后把这些内容再发给浏览器,浏览器根本不知道服务器发送的内容是从哪儿来的,所以它的地址栏中还是原来的地址。...

    Ajax详解.rar

    第 12 部分:面向 Java 开发人员的 Ajax: 构建动态的 Java 应用程序 133 1.5 更好的购物车 133 1.6 Ajax 往返过程 134 1.7 分派 XMLHttpRequest 135 1.8 servlet 请求处理 137 1.9 用 JavaScript 进行响应处理 ...

    Network-Stress-Tester:Java项目

    网络测试测试仪是一个客户端,可以同时向测试服务器发送大量请求。 请求是一样的。 请求的内容可以从预先准备好的文本文件中读取。 发送请求后必须等待响应。 如果答案以一行开头(可以从另一个预先准备好的文件中...

    standalone-moco-poc:一个简单的 poc,展示了如何使用 moco 向 Web 服务器提供存根(带有 json 响应和请求的示例)

    一个简单的 poc,展示了如何使用 moco 向 Web 服务器提供存根(带有 json 响应和请求的示例) 为了正确使用这个项目,你应该在这里下载独立版本的 moco: : 然后使用 launch_moco.bat 文件(例如使用端口号 10500...

    JSP期末考试试卷及参考答案

    7、在JSP内置对象中,(request)对象是从客户端向服务器端发出请求,包括用户提交的信息以及客户端的一些信息,此对象的(getparameter)方法可以获取客户端表单中某输入框提交的信息。 8、在JSP内置对象中,(response)...

    Java Web应用开发:Servlet和JSP技术进阶.ppt

    服务器可以利用request对象的getParameter()方法读取出来。 隐藏表单案例-index.jsp 把id写进Hidden表单里,用户看 不见,但是只要表单一提交, 这个参数值就可以提交给a.jsp 隐藏表单 VS URL重写 同重写URL技术相比...

    网络162-201611102003-宋春花-9-编程实现基于UDP的PING.doc

    2.4 将用户发送来的请求request在延迟一段随机选择的时间(小于1s)后返回给客户端,作为收到请求的响应reply; 2.5 通过如下命令行启动服务器:java PingServer port。 port为PingServer的工作端口号 3.客户端PingC

    Wap技术初级教程、中级教程

    它们之间的交互信息就是两大类:客户端对服务器端的请求(request)和服务器端对客户端的响应(response)。一次完整的交互包括一个请求和对它的响应。 所有的请求和响应都采用[RFC822]中定义的标准互联网消息格式...

    java面试题

    答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式允许其service方法,一个实例可以服务于多个请求,并且其实例一般不会被销毁,而CGI对每个请求都产生新的进程,服务完后就销毁,所以效率上...

    Servlet与JSP核心编程第2版

    第7章 服务器响应的生成:htip响应报头 7.1 在servlet中设置响应报头 7.2 理解http1.1响应报头 7.3 构建excel电子表格 7.4 servlet状态的持续以及页面的自动重载 7.5 使用servlet生成jpeg图像 第8章 ...

Global site tag (gtag.js) - Google Analytics