[TOC]
>[warning] 使用前請務必 load()->func('communication');
#### GET請求某個URL(簡單)
>[info] ihttp_get($url)
* $url 要獲取內容的URL,必須是以http或是https開頭
*返回值*`
error
[錯誤結構](http://www.hmoore.net/donknap/we7/134630)
success
```
array
(
'code' => 200 //http 狀態碼
'status' => OK //http 狀態信息
'responseline' => HTTP/1.1 200 OK
'headers' => array
(
//返回頭部的一些信息,這里是直接顯示百度的返回頭部信息
//具體功能函數不在這里贅述,可以查看HTTP相關文檔
'Server' => bfe/1.0.8.18
'Date' => Wed, 21 Sep 2016 03:23:54 GMT
'Content-Type' => text/html; charset=utf-8
'Connection' => close
'Vary' => Accept-Encoding
'P3P' => CP=" OTI DSP COR IVA OUR IND COM "
'Cache-Control' => private
'Cxy_all' => baidu+7cf6bc2c9c5ae104a1dad56cb1e2a027
'Expires' => Wed, 21 Sep 2016 03:22:58 GMT
'X-Powered-By' => HPHP
'X-UA-Compatible' => IE=Edge,chrome=1
'Strict-Transport-Security' => max-age=604800
'BDPAGETYPE' => 1
'BDQID' => 0x9f936d6300036048
'BDUSERID' => 0
// 此處返回服務器給客戶端設置的Cookie信息
// 下面的例子中會有怎么使用的例子
'Set-Cookie' => array
(
'0' => H_PS_PSSID=1437_21014_17944_21127_; path=/; domain=.baidu.com
'1' => __bsi=1222377018390; expires=Wed, 21-Sep-16 03:23:59 GMT; domain=www.baidu.com; path=/
)
)
'content' => '<!DOCTYPE html><!--STATUS OK--><html><head>..省略3千字...</body></html>' //網頁的HTML內容
)
```
*示例*
```
load()->func('communication');
$response = ihttp_get('http://baidu.com');
print_r($response['content']);
```
#### POST請求某個URL(簡單)
>[info] ihttp_post($url, $data)
* $url 要獲取內容的URL,必須是以http或是https開頭
* $data 要提交的表單數據,數組格式,如果是上傳文件,則以 @ + 文件物理路徑 書寫
*返回值*`
與 ihttp_get 函數相同
*示例*
```
//微擎會自動處理兼容為new CURLFile的寫法
$fullname = ATTACHMENT_ROOT . '/images/691/2016/08/tWSNp69sp82ErcW8c0NYSm86s86Cl0.jpg';
$sendapi = "https://api.weixin.qq.com/cgi-bin/media/uploadimg?access_token={$token}";
$data = array(
'name' => 'mizhou',
'media' => '@'.$fullname
);
load()->func('communication');
$response = ihttp_post($sendapi, $data);
```
#### 請求某個URL(高級)
>[info] ihttp_request($url, $post = '', $extra = array(), $timeout = 60)
* $url 要獲取內容的URL,必須是以http或是https開頭
* $post 數組格式,要POST請求的數據,為空時則會以GET形式請求
* $extra 請求附加值,下面會例子中會演示使用方法
* $timeout 超時時間
*返回值*`
與 ihttp_get 函數相同
*示例*
###### 附加表單數據請求到某個URL
```
load()->func('communication');
$loginurl = 'https://mp.weixin.qq.com/cgi-bin/login?lang=zh_CN';
$post = array(
'username' => $username,
'pwd' => $password,
);
$response = ihttp_request($loginurl, $post);
if (is_error($response)) {
return false;
}
return true;
```
###### 請求時附加一些頭部信息
```
//此實例為獲取微信圖片
//微信的圖片需要要求必須有引用頁,程序中無法直接調用,以下代碼實現一個具體引用頁的請求來獲取微信圖片
load()->func('communication');
//微信圖片
$image = trim($_GPC['attach']);
if(empty($image)) {
exit();
}
$content = ihttp_request($image, '', array('CURLOPT_REFERER' => 'http://www.qq.com'));
header('Content-Type:image/jpg');
echo $content['content'];
exit();
```
```
//此實例為獲取支付寶的支付地址
//支付寶的接口通過301跳轉來發送給客戶端跳轉地址,程序中為了獲取此url,故設置請求時不自動跳轉
load()->func('communication');
$response = ihttp_request(ALIPAY_GATEWAY . '?' . http_build_query($set, '', '&'), array(), array('CURLOPT_FOLLOWLOCATION' => 0));
return array('url' => $response['headers']['Location']);
```
```
//此實例為模擬微信請求地址,請求數據為xml格式
load()->func('communication');
$response = ihttp_request($item['apiurl'], $message, array('CURLOPT_HTTPHEADER' => array('Content-Type: text/xml; charset=utf-8')));
return $response['content'];
```
```
//此實例為附件cookie請求
//有些地址可能以cookie來判斷是否是惡意程序請求
load()->func('communication');
$response = ihttp_get($url);
$cookiejar = $response['headers']['Set-Cookie'];
$response = ihttp_request($urlpost, array('num' => 1), array(
'CURLOPT_COOKIE' => implode('; ', $cookiejar),
'CURLOPT_REFERER' => 'https://selfsolve.apple.com/agreementWarrantyDynamic.do',
));
```
- 入門
- 系統安裝
- 接入公眾平臺
- 關鍵字回復
- 更上一層樓
- 編碼規范
- php編碼規范
- html&css編碼規范
- JavaScript編碼規范
- 系統概述
- 結構概述
- 入口腳本
- 微擎MVC
- URL路由&創建
- $_W&全局變量
- 加載器
- 錯誤處理
- 日志記錄
- 模板
- 模板標簽
- 數據調用
- 常用變量
- 手機端組件
- 概述及依賴
- 圖像上傳
- 彈出選項
- 后臺組件
- 概述及依賴
- 后臺文件上傳
- 富文本編輯器
- 系統鏈接選擇器
- 其它常用組件
- 數據庫
- 參數綁定
- 數據操作
- 主從配置
- 連接其它數據庫
- 緩存
- 配置
- 緩存操作
- Http請求
- 概述及依賴
- GET&POST請求
- 發送郵件
- 會員與積分
- 統一用戶中心
- 借用OAuth
- 積分操作
- 資料操作
- 卡券
- 營銷卡券
- 會員卡
- 消息響應
- 消息概述
- 消息響應
- 微信API
- 公眾號AccessToken
- 共享收貨地址(廢棄)
- 共享收貨地址(新)
- 粉絲標簽
- 客服消息
- 模板消息
- 粉絲信息
- 素材
- 群發
- 二維碼
- 在線支付
- 概述及依賴
- 發起支付(PHP)
- 發起支付(JS)
- 驗證支付
- 模塊
- 設計模塊
- 目錄結構
- module.php
- processor.php
- site.php
- receiver.php
- 模塊高級專題
- 自定義分享
- 智能應答
- 微信卡券
- 遠程附件
- 權限控制
- 特殊事件觸發模塊
- 粉絲信息
- 小程序
- 概述
- Uitl類
- 云服務
- 云API
- 系統接口
- 模塊云配置
- 云短信
- 云短信錯誤代碼
- 云短信發送函數
- 批量群發短信
- 應用推廣
- 懸賞文案
- 折扣碼
- 系統消息
- 開發者等級資料認證
- 應用標簽
- 模塊自動檢測訂閱支持
- 小程序
- 開發實例
- 參數設置
- 常見問題