少年阿賓

          那些青春的歲月

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            500 Posts :: 0 Stories :: 135 Comments :: 0 Trackbacks

          常用鏈接

          留言簿(22)

          我參與的團隊

          搜索

          •  

          最新評論

          閱讀排行榜

          評論排行榜

          post提交模擬

          import java.io.BufferedReader;
          import java.io.BufferedWriter;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.OutputStreamWriter;
          import java.net.InetAddress;
          import java.net.Socket;
          import java.net.URLEncoder;

          public class TestSocketPost {

              public static void main(String[] args) {
                  BufferedWriter httpPostWriter = null;
                  BufferedReader httpResponse = null;
                  try {
                      // form域的數據.form域的數據必須以鏈接形式發送
                      StringBuffer formDataItems = new StringBuffer();
                      formDataItems.append(URLEncoder.encode("name", "GBK"));
                      formDataItems.append("=");
                      formDataItems.append(URLEncoder.encode("fruitking", "GBK"));
                      formDataItems.append("&");
                      formDataItems.append(URLEncoder.encode("company", "GBK"));
                      formDataItems.append("=");
                      formDataItems.append(URLEncoder.encode("intohotel", "GBK"));
                      String hostname = "localhost";// 主機,可以是域名,也可以是ip地址
                      int port = 8080;// 端口
                      InetAddress addr = InetAddress.getByName(hostname);
                      // 建立連接
                      Socket socket = new Socket(addr, port);
                      // 創建數據提交數據流
                      httpPostWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "GBK"));
                      // 相對主機的請求地址
                      String httpSubmitPath = "/icbcnet/testpostresult.jsp";
                      // 發送數據頭
                      httpPostWriter.write("POST " + httpSubmitPath + " HTTP/1.0\r\n");
                      httpPostWriter.write("Host: socket方式的post提交測試\r\n");
                      httpPostWriter.write("Content-Length: " + formDataItems.length() + "\r\n");
                      httpPostWriter.write("Content-Type: application/x-www-form-urlencoded\r\n");
                      httpPostWriter.write("\r\n"); // 以空行作為分割
                      // 發送數據
                      httpPostWriter.write(formDataItems.toString());
                      httpPostWriter.flush();
                      // 創建web服務器響應的數據流
                      httpResponse = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GBK"));
                      String lineStr = "";
                      while ((lineStr = httpResponse.readLine()) != null) {
                          System.out.println(lineStr);
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                  } finally {
                      try {
                          if (httpPostWriter != null) {
                              httpPostWriter.close();
                          }
                          if (httpResponse != null) {
                              httpResponse.close();
                          }
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }

          get模擬

          import java.io.BufferedReader;
          import java.io.BufferedWriter;
          import java.io.IOException;
          import java.io.InputStreamReader;
          import java.io.OutputStreamWriter;
          import java.net.InetAddress;
          import java.net.Socket;
          import java.net.URLEncoder;

          public class TestSocketGet {

              public static void main(String[] args) {
                  BufferedWriter httpGetWriter = null;
                  BufferedReader httpResponse = null;
                  try {
                      String hostname = "localhost";// 主機,可以是域名,也可以是ip地址
                      int port = 8080;// 端口
                      InetAddress addr = InetAddress.getByName(hostname);
                      // 建立連接
                      Socket socket = new Socket(addr, port);
                      // 創建數據提交數據流
                      httpGetWriter = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream(), "GBK"));
                      // 相對主機的請求地址
                      StringBuffer httpSubmitPath = new StringBuffer("/icbcnet/testpostresult.jsp?");
                      httpSubmitPath.append(URLEncoder.encode("name", "GBK"));
                      httpSubmitPath.append("=");
                      httpSubmitPath.append(URLEncoder.encode("fruitking", "GBK"));
                      httpSubmitPath.append("&");
                      httpSubmitPath.append(URLEncoder.encode("company", "GBK"));
                      httpSubmitPath.append("=");
                      httpSubmitPath.append(URLEncoder.encode("pubone", "GBK"));
                      httpGetWriter.write("GET " + httpSubmitPath.toString() + " HTTP/1.1\r\n");
                      httpGetWriter.write("Host: socket方式的get提交測試\r\n");
                      httpGetWriter.write("\r\n");
                      httpGetWriter.flush();
                      // 創建web服務器響應的數據流
                      httpResponse = new BufferedReader(new InputStreamReader(socket.getInputStream(), "GBK"));
                      // 讀取每一行的數據.注意大部分端口操作都需要交互數據。
                      String lineStr = "";
                      while ((lineStr = httpResponse.readLine()) != null) {
                          System.out.println(lineStr);
                      }
                  } catch (Exception e) {
                      e.printStackTrace();
                  } finally {
                      try {
                          if (httpGetWriter != null) {
                              httpGetWriter.close();
                          }
                          if (httpResponse != null) {
                              httpResponse.close();
                          }
                      } catch (IOException e) {
                          e.printStackTrace();
                      }
                  }
              }
          }
          posted on 2012-12-31 12:35 abin 閱讀(2359) 評論(0)  編輯  收藏 所屬分類: Socket

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 石渠县| 广丰县| 咸丰县| 沙坪坝区| 五华县| 县级市| 横山县| 南澳县| 庆云县| 京山县| 福鼎市| 建德市| 买车| 资中县| 尉氏县| 鹿泉市| 桂平市| 龙胜| 广丰县| 兴安县| 盐山县| 鸡东县| 尼勒克县| 瑞昌市| 会泽县| 陆良县| 巴彦淖尔市| 湘潭县| 广平县| 岫岩| 交城县| 南开区| 板桥市| 康乐县| 平南县| 婺源县| 望都县| 库尔勒市| 珠海市| 淳安县| 青铜峡市|