Browse Source

Update PageController.class.php

增加跳转到HTTP接口测试页面 和处理HTTP接口请求
tolower 9 years ago
parent
commit
2a57049b47
1 changed files with 79 additions and 1 deletions
  1. 79 1
      Application/Home/Controller/PageController.class.php

+ 79 - 1
Application/Home/Controller/PageController.class.php

@@ -87,6 +87,84 @@ class PageController extends BaseController {
         $this->display();        
     }
 
+    //跳转到HTTP接口测试页面
+	public function http_api(){
+		
+		$this->display(); 
+	}
+
+	//处理HTTP测试请求,返回请求接口后的数据
+	public function ajaxHttpApi(){
+		$url=I('url');
+		$method=I('method');
+		$params=I('params');
+		if($method=='get'){
+			$url=$url."?".$params;
+			$return=$this->http_get($url);
+		}else{
+			$return=$this->http_post($url, $params);
+		}
+		echo $return;
+	}
+	/**
+	 * GET 请求
+	 *
+	 * @param string $url        	
+	 */
+	private function http_get($url) {
+		$oCurl = curl_init ();
+		if (stripos ( $url, "https://" ) !== FALSE) {
+			curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
+			curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, FALSE );
+		}
+		curl_setopt ( $oCurl, CURLOPT_URL, $url );
+		curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
+		$sContent = curl_exec ( $oCurl );
+		$aStatus = curl_getinfo ( $oCurl );
+		curl_close ( $oCurl );
+		if (intval ( $aStatus ["http_code"] ) == 200) {
+			return $sContent;
+		} else {
+			return false;
+		}
+	}
+	
+	/**
+	 * POST 请求
+	 *
+	 * @param string $url        	
+	 * @param array $param        	
+	 * @return string content
+	 */
+	private function http_post($url, $param) {
+		$oCurl = curl_init ();
+		if (stripos ( $url, "https://" ) !== FALSE) {
+			curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
+			curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
+		}
+		if (is_string ( $param )) {
+			$strPOST = $param;
+		} else {
+			$aPOST = array ();
+			foreach ( $param as $key => $val ) {
+				$aPOST [] = $key . "=" . urlencode ( $val );
+			}
+			$strPOST = join ( "&", $aPOST );
+		}
+		curl_setopt ( $oCurl, CURLOPT_URL, $url );
+		curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
+		curl_setopt ( $oCurl, CURLOPT_POST, true );
+		curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $strPOST );
+		$sContent = curl_exec ( $oCurl );
+		$aStatus = curl_getinfo ( $oCurl );
+		curl_close ( $oCurl );
+		if (intval ( $aStatus ["http_code"] ) == 200) {
+			return $sContent;
+		} else {
+			return false;
+		}
+	}
+
     //保存
     public function save(){
         $login_user = $this->checkLogin();
@@ -225,4 +303,4 @@ class PageController extends BaseController {
     }
 
 
-}
+}