PHP如何呼叫Delphi開發的DataSnap/Restful介面服務
前面博主寫過一篇“ASP如何呼叫Delphi開發的DataSnap/Restful介面服務”的文章,有網友反映不知道如何使用PHP來呼叫。
其實PHP呼叫Restful介面服務比ASP更簡單,寫一個例子說明一下。
1、通用介面函式呼叫檔案:testRestful.php
<?php
header("Content-Type:text/html;charset=utf-8");
?>
<?php
//陣列轉換成以'/'分隔的字串
function http_build_query_delphi($arr)
{
//$arr = array('url'=>'http://www.jb51.net','name'=>'指令碼之家','str'=>'PHP教程');
$result = '';
//foreach($arr as $key=>$value){
foreach($arr as $value){
$result .= '/'.$value;
}
if (strlen($result)>0)
$result = substr($result,1); //刪除第一個"/"字元
return $result;
}
/**
* [http 呼叫介面函式]
* @Date 2016-07-11
* @Author GeorgeHao
* @param string $url [介面地址]
* @param array $params [陣列]
* @param string $method [GET\POST\DELETE\PUT]
* @param array $header [HTTP頭資訊]
* @param integer $timeout [超時時間]
* @return [type] [介面返回資料]
*/
function http($func, $params, $method = 'GET', $header = array(), $timeout = 5)
{
define('_SRV','http://localhost:8019/peci/rest/TServerMethods/'); //定義了一個常量,應從配置檔案中讀取
define('_KEY','91F11212729292F2136DADED3656B6CECECECD3145474855B6'); //應從配置檔案中讀取
$params["KeyNumber"] = _KEY;//增加一個Key鍵值和元素
$url = _SRV . $func;
// POST 提交方式的傳入 $set_params 必須是字串形式
$opts = array(
CURLOPT_TIMEOUT => $timeout,
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_SSL_VERIFYPEER => false,
CURLOPT_SSL_VERIFYHOST => false,
CURLOPT_HTTPHEADER => $header
);
/* 根據請求型別設定特定引數 */
switch (strtoupper($method)) {
case 'GET':
//通常$url=http://localhost/netpay/rest/TServerMethod1/GetXQList?xq=1&room=10110105
//$opts[CURLOPT_URL] = $url . '?' . http_build_query($params);
$opts[CURLOPT_URL] = $url . '/' . http_build_query_delphi($params);
//Delphi生成的Restful服務介面函式呼叫時不是常見?x=值1&y=值2的方式,而是直接/值1/值2的方式,問號?也用/替代了。
//如:$url=http://localhost/netpay/rest/TServerMethod1/GetXQList/1/10110105
break;
case 'POST':
$params = http_build_query($params);
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_POST] = 1;
$opts[CURLOPT_POSTFIELDS] = $params;
break;
case 'DELETE':
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_HTTPHEADER] = array("X-HTTP-Method-Override: DELETE");
$opts[CURLOPT_CUSTOMREQUEST] = 'DELETE';
$opts[CURLOPT_POSTFIELDS] = $params;
break;
case 'PUT':
$opts[CURLOPT_URL] = $url;
$opts[CURLOPT_POST] = 0;
$opts[CURLOPT_CUSTOMREQUEST] = 'PUT';
$opts[CURLOPT_POSTFIELDS] = $params;
break;
default:
throw new Exception('不支援的請求方式!');
}
/* 初始化並執行curl請求 */
$ch = curl_init();
//如果網站需要安全驗證,那麼需要執行下面兩條命令,否則就不需要。
curl_setopt($ch, CURLOPT_HTTPAUTH, CURLAUTH_BASIC);
curl_setopt($ch, CURLOPT_USERPWD, 'username:password');
curl_setopt_array($ch, $opts);
$data = curl_exec($ch);
$error = curl_error($ch);
curl_close($ch);
return $data;
}
?>
2、測試檔案:test.php
執行結果為:<?php require("testRestful.php") ?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Stict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1- strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" lang = "zh-CN"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> </head> <body> <?php $func = "GetRoomInfo_ByRoom"; echo "呼叫介面方法:" . $func . "(xiaoqu_id,room,KeyNumber),結果如下:<hr>"; $params = array("xiaoqu_id" => "1", "room" => "10110105"); $result = http($func,$params); if ($result === false) echo "介面方法執行失敗!"; else echo "介面方法執行成功!返回結果為:<p>" . $result; ?> </body> </html>
該介面方法其實查詢出了後臺資料庫中的如下記錄:
相關推薦
PHP如何呼叫Delphi開發的DataSnap/Restful介面服務
前面博主寫過一篇“ASP如何呼叫Delphi開發的DataSnap/Restful介面服務”的文章,有網友反映不知道如何使用PHP來呼叫。 其實PHP呼叫Restful介面服務比ASP更簡單,寫一個例子說明一下。 1、通用介面函式呼叫檔案:testRestful.php
PHP-微信開發之圖靈機器人--天氣介面呼叫
微信開發中,圖靈機器人回覆、天氣、翻譯、美食、地圖、二維碼功能,隨處可見。大小網站、APP都在運用這項技術在專案中。今天簡單介紹一下圖靈機器人回覆,天氣介面呼叫、翻譯介面,希望對朋友們有用。 效果案例: 思路很簡單,首先,token要一致,然後在瀏覽器上跑起來, 回到微信平臺
快速開發php介面服務推薦框架
推薦π框架,一個輕量級PHP開源介面框架,專注於介面服務開發,支援HTTP/SOAP/RPC協議,擁有自動生成的線上文件、多種開發語言的客戶端SDK包以及可重用的擴充套件類庫,可用於快速搭建微服務、RESTful介面或Web Services。 碼雲:https://gite
PHP呼叫內容DES加密的SOAP介面
本文以方倍工作室優惠券介面開發為例,介紹PHP下DES加解密及SOAP介面呼叫的實現過程。 一、基礎概念 DES全稱為Data Encryption Standard,即資料加密標準,是一種使用金鑰加密的塊演算法,1976年被美國聯邦政府的國家標準局確定為聯邦資料處理標準(FIPS),隨後在
php 呼叫 騰訊雲的人臉融合 ai介面
1.登入騰訊AI開放平臺(控制檯) 2.建立應用 3.接入能力 4.開始開發 1)獲取APPID AppKey public $APPID = **********; public $APPKEY = **********;// 應用金鑰
談談Go語言的Restful介面開發
前言: 如今微服務、無伺服器架構大行其道。而API開發是這些話題的主角。 Go語言開發效率要比Java Spring要快一些,效能上比PHP高出一個數量級。尤其是Go語言在併發方便非常的優秀,是接下來值得關注的一門語言。 本人近來學習go語言,想基於Go做Web API,經過調研
c語言開發套路-怎樣快速呼叫別人的一套介面 api模型的抽象
圈出的部分要用直接copy stdio.h中的這個部分 這段程式碼的意思就是 如果是cpp編譯器 請使用c語言的規範去編譯下面的程式碼 假設現在有這樣一個頭檔案 #pragma once //SOCKET_H #ifndef _SOCKETCLIENT_H #endif _S
PHP呼叫百度天氣介面API
//百度天氣介面API $location = "北京"; //地區 $ak = "5slgyqGDENN7Sy7pw29IUvrZ"; //祕鑰,需要申請,百度為了防止頻繁請求 $weatherURL = "http://api.map.baidu.com/telematics/v3/weather?lo
PHP呼叫介面API封裝
GET: /** * 通過URL獲取頁面資訊 * @param $url 地址 * @return mixed 返回頁面資訊 */ function get_url($url) { $ch = curl_init(); curl_setopt
PHP呼叫微博介面實現微博登入
在平時專案開發過程中,除了註冊本網站賬號進行登入之外,還可以呼叫第三方介面進行登入網站。這裡以微博登入為例。微博登入包括身份認證、使用者關係以及內容傳播。允許使用者使用微博帳號登入訪問第三方網站,分享內容,同步資訊。 1、首先需要引導需要授權的使用者到如下地址: h
dotnet core 開發無縫相容Http和Websocket協議的介面服務
在應用介面開發中往往要針對不同協義開發相應的代理服務,但對於Websocket和http這兩種協議來說就有些不同,從實現上來看Websocket可以說是Http的升級子協議, 兩者在協議處理上基本一致,具體可以在解釋Body上有所不同。FastHttpApi在實現過程完全支援http協議升級成websocke
微信開發 ---呼叫微信掃碼介面
呼叫微信掃碼介面 步驟一:繫結域名 微信公眾號繫結域名 步驟二:引入JS檔案 步驟三:通過config介面注入許可權驗證配置 這個是呼叫微信的重要憑證,你想要掉用微信的介面 必須先得把簽名通過,這個方法直接放到javascript裡 wx.config({
PHP呼叫支付寶支付介面操作步驟
1.首先掃碼登入支付寶個人主頁點選開發平臺 2.點選開發接入,找到開發服務點選沙箱 3.進入沙箱環境 4.應用中選擇電腦網站支付,然後選擇demo下載 5.下載完畢解壓後將檔案複製到WWW目錄下,新建站點,進行訪問 6.回到沙箱應用,開始配置檔案
PHP呼叫Java的hessian介面報錯:Expected 'H'/'C' (Hessian 2.0) or 'c' (Hessian 1.0) in hessian input at -1
出錯提示: Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Hessian skeleton invocation failed; nested exceptio
關於Spring--hessian遠端呼叫介面服務配置
maven依賴hessian的jar包如下: <dependency> <groupId>com.caucho</groupId> <artifactId>hessian</artifactId>
WebApi RESTful介面例項及ajax呼叫
例項圖片 WebApi介面原始碼 using System; using System.Collections.Generic; using System.Linq; using System.Net; using System.Net.Http; using Sys
三種方式實現遠端restful 介面呼叫
1,基本介紹 Restful介面的呼叫,前端一般使用ajax呼叫,後端可以使用的方法比較多, 本次介紹三種: 1.HttpURLConnection實現 2.HttpClient實現 3.Spring的RestTemplate
基於django的rest api快速開發(只提供一個介面服務)
需求:目前我們有一個後臺的python指令碼和前臺的頁面,我們需要提供一個類似tomcat的服務,來使前臺的一個請求,通過我們搭建的服務去呼叫python模型,並最終將處理的結果返回給前臺。一:搭建django rest api 環境首先我們需要有python環境,這是基礎,
Ajax跨域呼叫後臺Restful介面時的JSON轉換方法
類:AjaxExchange 作用:將後臺取到的資料以JSON或HTML的形式返回 package org.sun.com; import java.io.OutputStreamWriter; import java.io.PrintWriter; import jav
微信企業號開發之access_token介面呼叫示例
第一步:建立企業應用 登入企業管理後臺進入“企業應用”頁面,通訊錄管理是企業微信預設整合的應用,可以直接開啟,如果企業需要開發自定義的應用,可點選“新增應用”完成應用的新增和配置,詳細步驟請參見應用概述。 第二步:開啟接收訊息模式 開啟接收訊息模式並不是必須