javaScript 中的 HTTP 请求 (《javascript 高级程序设计》)

View Code
  1 if(typeof XMLHttpRequest == "undefined" && window.ActiveXObject){
  2      function XMLHttpRequest(){
  3          var arrSignatures = ["MSXML2.XMLHTTP.5.0","MSXML2.XMLHTTP.4.0",
  4                              "MSXML2.XMLHTTP.3.0","MSXML2.XMLHTTP",
  5                              "Microsoft.XMLHTTP"];
  6          for(var i=0; i < arrSignatures.length; i++){
  7              try{
  8                  var oRequest = new ActiveXObject(arrSignatures[i]);
  9                  return oRequest;
 10              } catch ( oError ){
 11                  //ignore
 12              }
 13          }
 14          throw new Error("MSXML is not installed on your system.");
 15      }
 16  }
 17  
 18  
 19  function addURLParam(sURL,sParamName,sParamValue){
 20      sURL += (sURL.indexOf("?") == -1 ? "?" : "&");
 21      sURL += encodeURIComponent(sParamName) + "=" + encodeURIComponent(sParamValue);
 22      return sURL;
 23  }
 24  
 25  function addPostParam(sParams, sParamName, sParamValue){
 26      if(sParams.length > 0 ){
 27          sParams += "&";
 28      }
 29      return sParams + encodeURIComponent(sParamName) + "=" + encodeURIComponent(sParamValue);
 30  }
 31  
 32  function httpGet(sURL){
 33      var oURL = new java.net.URL(sURL);
 34      var oStream = oURL.openStream();
 35      var oReader = new java.io.BufferedReader(new java.io.InputStreamReader(oStream));
 36      var sResponseText = "";
 37      
 38      var sLine = oReader.readerLine();
 39      while (sLine != null){
 40          sResponseText += sLine + "\n";
 41          sLine = oReader.readerLine();
 42      }
 43      
 44      oReader.close();
 45      return sResponseText;    
 46  }
 47  
 48  function httpPost(sURL, sParams){
 49      var oURL = new java.net.URL(sURL);
 50      var oConnection = oURL.openConnection();
 51      
 52      oConnection.setDoInput(true);
 53      oConnection.setDoOutput(true);
 54      oConnection.setUseCaches(false);
 55      oConnection.setRequestPorperty("Content-Type","application/x-www-form-urlencodeded");
 56      
 57      var oOutput = new java.io.DataOutputStream(oConnection.getOutputStream());
 58      oOutput.writeBytes(sParam);
 59      oOutput.flush();
 60      oOutput.close();
 61      
 62      var sLine = "",sResponseText = "";
 63      var oInput = new java.io.DataInputStream(oConnection.getInputStream());
 64      sLine = oInput.readLine();
 65  
 66      while(sLine != null){
 67          sResponseText += sLine + "\n";
 68          sLine = oInput.readLine()
 69      }
 70  }
 71  
 72  var bXmlHttpSupport = (typeof XMLHttpRequest == "Object" || window.ActiveXObject);
 73  var Http = new Object;
 74  Http.get = function(sURL, fnCallback){
 75      if(bXmlHttpSupport){
 76          var oRequest = new XMLHttpRequest();
 77          oRequest.open("get",sURL,true);
 78          oRequest.onreadystatechange = function(){
 79              if(oRequest.readyState == 4){
 80                  fnCallback(oRequest.responseText);
 81              }
 82          }
 83          oRequest.send(null);
 84      }else if(navigator.javaEnabled() && typeof java != "undefined" && typeof java.net != "undefined"){
 85          setTimeout(function(){
 86              fnCallback(httpGet(sURL));
 87          },10);
 88      } else {
 89          alert("Your browser doesn't support HTTP requests.")
 90      }
 91  }
 92  
 93  Http.post = function(sURL,sParams,fnCallback){
 94      if(bXmlHttpSupport){
 95          var oRequest = new XMLHttpRequest();
 96          oRequest.open("post",sURL,true);
 97          oRequest.setRequestHeader("COntent-Type","application/x-www-form-urlencoded");
 98          oRequest.onreadystatechange = function(){
 99              if(oRequest.readyState == 4){
100                  fnCallback(oRequest.requestText);
101              }
102          }
103          oRequest.send(sParams);
104      }else if(navigator.javaEnabled() && typeof java != "undefined" && typeof java.net != "undefined"){
105          setTimeout(function(){
106              fnCallback(httpPost(sURL,sParams));
107          }, 10);
108      }else{
109          alert("Your browser doesn't support HTTP requests.");
110      }
111  }
112  
113  var sURL = "http://www.somewhere.com/page.php";
114  var sparams = "";
115  sParams = addURLParam(sParams,"name","Nicholas");
116  oHttp.post(sURL,function(sData){
117      alert("server sent back: " + sData);
118  })
119  
120  
121  var sURL = "http://www.somewhere.com/page.php";
122  var sparams = "";
123  sParams = addPostParam(sParams,"name","Nicholas");
124  oHttp.post(sURL,function(sData){
125      alert("server sent back: " + sData);
126  })

 

posted @ 2013-03-06 16:40  拾遗日志  阅读(226)  评论(0编辑  收藏  举报