注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

Big-Time的博客

天行健,君子以自强不行。

 
 
 

日志

 
 
关于我

人生像攀登一座山,而找寻出路,却是一种学习的过程,我们应当在这过程中,学习稳定、冷静,学习如何从慌乱中找到生机。

网易考拉推荐

用Socket发送http请求  

2011-08-16 17:06:09|  分类: Java |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |
一、发送Get请求
import java.net.*; import java.io.*; public class URLSender {     /**     * @param args */  public static void main(String[] args) throws IOException {         try {             Socket socket = new Socket("www.nwu.edu.cn", 80);             boolean autoflush = true;            PrintWriter out = new PrintWriter(socket.getOutputStream(), autoflush);             BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));             //send an HTTP request to the web server            out.println("GET / HTTP/1.1");             out.println("Host: nwu.edu.cn");             out.println("Connection: Close");             out.println();             //read the response                    boolean loop = true;            StringBuffer sb = new StringBuffer(8096);             while (loop) {                if (in.ready()) {                 int i = 0;                 while (i != -1) {                     i = in.read();                     sb.append((char) i);                 }                 loop = false;              }             //Thread.currentThread().sleep(50);             }             //display the response to the out console             System.out.println(sb.toString());           socket.close();        } catch (UnknownHostException e) {             System.err.println("Don't know about host: Victest.");              System.exit(1);         } catch (IOException e) {             System.err.println("Couldn't get I/O for " + "the connection to: Victest.");              System.exit(1);         }    } } 
2、用Socket发送一个POST请求

    try {
        // Construct data
        String data = URLEncoder.encode("key1", "UTF-8") + "=" + URLEncoder.encode("value1", "UTF-8");
        data += "&" + URLEncoder.encode("key2", "UTF-8") + "=" + URLEncoder.encode("value2", "UTF-8");
   
        // Create a socket to the host
        String hostname = "hostname.com";
        int port = 80;
        InetAddress addr = InetAddress.getByName(hostname);
        Socket socket = new Socket(addr, port);
   
        // Send header
        String path = "/servlet/SomeServlet";
        BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "UTF8"));
        wr.write("POST "+path+" HTTP/1.0\r\n");
        wr.write("Content-Length: "+data.length()+"\r\n");
        wr.write("Content-Type: application/x-www-form-urlencoded\r\n");
        wr.write("\r\n");
   
        // Send data
        wr.write(data);
        wr.flush();
   
        // Get response
        BufferedReader rd = new BufferedReader(new InputStreamReader(socket.getInputStream()));
        String line;
        while ((line = rd.readLine()) != null) {
            // Process line...
        }
        wr.close();
        rd.close();
    } catch (Exception e) {
    }
  评论这张
 
阅读(772)| 评论(0)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017