利用Http请求 获取数据
来源:互联网 发布:linux远程重启服务器 编辑:程序博客网 时间:2024/05/16 00:32
利用Http请求 获取数据
- /*
- XmlHttpRequest Wrapper
- Version 1.2.2
- 29 Jul 2005
- adamv.com/dev/
- */
- var Http = {
- ReadyState: {
- Uninitialized: 0,
- Loading: 1,
- Loaded:2,
- Interactive:3,
- Complete: 4
- },
- Status: {
- OK: 200,
- Created: 201,
- Accepted: 202,
- NoContent: 204,
- BadRequest: 400,
- Forbidden: 403,
- NotFound: 404,
- Gone: 410,
- ServerError: 500
- },
- Cache: {
- Get: 1,
- GetCache: 2,
- GetNoCache: 3,
- FromCache: 4
- },
- Method: {Get: "GET", Post: "POST", Put: "PUT", Delete: "DELETE"},
- enabled: false,
- logging: false,
- _get: null, // Reference to the XmlHttpRequest object
- _cache: new Object(),
- Init: function(){
- Http._get = Http._getXmlHttp()
- Http.enabled = (Http._get != null)
- Http.logging = (window.Logging != null);
- },
- _getXmlHttp: function(){
- /*@cc_on @*//*@if (@_jscript_version >= 5)
- try { return new ActiveXObject("Msxml2.XMLHTTP"); }
- catch (e) {}
- try { return new ActiveXObject("Microsoft.XMLHTTP"); }
- catch (e) {}
- @end @*/
- try { return new XMLHttpRequest();}
- catch (e) {}
- return null;
- },
- /*
- Params:
- url: The URL to request. Required.
- cache: Cache control. Defaults to Cache.Get.
- callback: onreadystatechange function, called when request is completed. Optional.
- method: HTTP method. Defaults to Method.Get.
- */
- get: function(params, callback_args){
- if (!Http.enabled) throw "Http: XmlHttpRequest not available.";
- var url = params.url;
- if (!url) throw "Http: A URL must be specified";
- var cache = params.cache || Http.Cache.Get;
- var method = params.method || Http.Method.Get;
- var callback = params.callback;
- if ((cache == Http.Cache.FromCache) || (cache == Http.Cache.GetCache))
- {
- var in_cache = Http.from_cache(url, callback, callback_args)
- if (Http.logging){
- Logging.log(["Http: URL in cache: " + in_cache]);
- }
- if (in_cache || (cache == Http.Cache.FromCache)) return in_cache;
- }
- if (cache == Http.Cache.GetNoCache)
- {
- var sep = (-1 < url.indexOf("?")) ? "&" : "?"
- url = url + sep + "__=" + encodeURIComponent((new Date()).getTime());
- }
- // Only one request at a time, please
- if ((Http._get.readyState != Http.ReadyState.Uninitialized) &&
- (Http._get.readyState != Http.ReadyState.Complete)){
- this._get.abort();
- if (Http.logging){
- Logging.log(["Http: Aborted request in progress."]);
- }
- }
- Http._get.open(method, url, true);
- Http._get.onreadystatechange = function() {
- if (Http._get.readyState != Http.ReadyState.Complete) return;
- if (Http.logging){
- Logging.log(["Http: Returned, status: " + Http._get.status]);
- }
- if ((cache == Http.Cache.GetCache) && (Http._get.status == Http.Status.OK)){
- Http._cache[url] = Http._get.responseText;
- }
- if (callback_args == null) callback_args = new Array();
- var cb_params = new Array();
- cb_params.push(Http._get);
- for(var i=0;i<callback_args.length;i++)
- cb_params.push(callback_args[i]);
- callback.apply(null, cb_params);
- }
- if(Http.logging){
- Logging.log(["Http: Started/n/tURL: " + url + "/n/tMethod: " + method + "; Cache: " + Hash.keyName(Http.Cache,cache)])
- }
- Http._get.send(params.body || null);
- },
- from_cache: function(url, callback, callback_args){
- var result = Http._cache[url];
- if (result != null) {
- var response = new Http.CachedResponse(result)
- var cb_params = new Array();
- cb_params.push(response);
- for(var i=0;i<callback_args.length;i++)
- cb_params.push(callback_args[i]);
- callback.apply(null, cb_params);
- return true
- }
- else
- return false
- },
- clear_cache: function(){
- Http._cache = new Object();
- },
- is_cached: function(url){
- return Http._cache[url]!=null;
- },
- CachedResponse: function(response) {
- this.readyState = Http.ReadyState.Complete
- this.status = Http.Status.OK
- this.responseText = response
- }
- }
- Http.Init()
- function json_response(response){
- var js = response.responseText;
- try{
- return eval(js);
- } catch(e){
- if (Http.logging){
- Logging.logError(["json_response: " + e]);
- }
- else{
- alert("Error: " + e + "/n" + js);
- }
- return null;
- }
- }
- function getResponseProps(response, header){
- try {
- var s = response.getResponseHeader(header || 'X-Ajax-Props');
- if (s==null || s=="")
- return new Object()
- else
- return eval("o="+s)
- } catch (e) { return new Object() }
- }
- function Geturl(AssID,ActiveID)
- {
- try
- {
- var strpath="../redirect.ashx?;
- Http.get({
- url: strpath,
- callback: getHttpContents,cache:
- Http.Cache.GetNoCache});
- }
- catch(e)
- {
- alert(e.name+":"+e.message);
- }
- }
- // get the result
- function getHttpContents(result){
- if (result.status==Http.Status.OK)
- {
- alert(result.responseText);
- initPlayerByUrl(result.responseText);
- setPlay();
- }
- else
- {
- alert("can't get ");
- }
- }
{
var A=null;
try
{
A=new ActiveXObject("Msxml2.XMLHTTP")
} catch(e) {
try
{
A=new ActiveXObject("Microsoft.XMLHTTP")
} catch(oc) {
A=null
}
}
if ( !A && typeof XMLHttpRequest != "undefined" )
{
A=new XMLHttpRequest()
}
return A
}
這段是從Google Suggest的js中擷取出來的,
如此一來,只要將程式改成
var xmlDom = jb();
var strData = "code=123";
xmlDom.open("POST","default.asp",false);
xmlDom.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
xmlDom.send(strData);
var strData = "code=123";
xmlDom.open("POST","default.asp",false);
xmlDom.setRequestHeader("Content-Type","application/x-www-form-urlencoded")
xmlDom.send(strData);
就可以了,
至於, new ActiveXObject("Microsoft.XMLHTTP") 跟 new XMLHttpRequest()
在功能上有沒有什麼差異,這就要等你去發掘了,
因為我的問題,到這已經算是解決了...
- 利用Http请求 获取数据
- 发送http请求获取数据
- ios 利用NSStream模拟请求http数据
- 【php】获取http请求body数据
- java 模拟http请求获取数据
- java发http,https请求获取数据
- HttpServletRequest 获取 http 请求xml格式数据
- cocos2dx lua http请求获取网络数据:
- nodejs获取http请求的传入数据
- cocos2dx lua http请求获取网络数据:
- Node入门训练【5】【利用http请求抓取网页数据】
- XML通过HTTP请求从服务器端获取XML数据
- android http数据通信 通过GET 请求获取数据
- J2SE发送http请求并获取返回数据
- http get请求获取服务器返回的应答数据
- Android中基于Http请求获取数据基础
- HTTP请求协议 get post方法 获取数据解析
- 使用WinINet发送HTTP请求并获取数据[原]
- GSoap初体验[转]
- RGSSAD加密方案分析
- Hello World !
- 超酷的马踏棋盘(在DOS下运行)
- 将VK_RETURN VK_DELETE等按键消息转换为WM_CHAR消息
- 利用Http请求 获取数据
- gSoap下Server端接口函数的数据传出[转]
- CEDIT的文字和背景色设置--(只读也可以)
- 关于std::copy 中的overlapped问题解释
- 使用gSoap开发Web Service C/C++客户端[转]
- 事务,为什么你不回滚(补充)
- 优秀系统分析师必读——需求分析20条原则
- SQL里的EXISTS与in、not exists与not in
- frameset元素的cols及rows属性(转)