java獲取php數(shù)據(jù) php獲取接口的json數(shù)據(jù)

php程序與java程序之間做數(shù)據(jù)交互,怎么做

用php的curl模擬瀏覽器請(qǐng)求是訪問(wèn)java服務(wù)器程序

永年網(wǎng)站制作公司哪家好,找創(chuàng)新互聯(lián)建站!從網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開(kāi)發(fā)、APP開(kāi)發(fā)、成都響應(yīng)式網(wǎng)站建設(shè)公司等網(wǎng)站項(xiàng)目制作,到程序開(kāi)發(fā),運(yùn)營(yíng)維護(hù)。創(chuàng)新互聯(lián)建站自2013年起到現(xiàn)在10年的時(shí)間,我們擁有了豐富的建站經(jīng)驗(yàn)和運(yùn)維經(jīng)驗(yàn),來(lái)保證我們的工作的順利進(jìn)行。專注于網(wǎng)站建設(shè)就選創(chuàng)新互聯(lián)建站。

2.用java的一個(gè)http類庫(kù)同樣發(fā)送http請(qǐng)求來(lái)訪問(wèn)PHP服務(wù)器

$context=stream_context_create(array('http'=array('method'="GET",'timeout'=30,)));

$string=file_get_contents('',false,$context);//換成java地址

echo?'這可不是百度,只是我輸出了百度的返回';

echo?$string;

java怎么調(diào)用php的語(yǔ)句是什么

PHP調(diào)用JAVA方式

1. 背景

在開(kāi)發(fā)招商銀行信用卡分期付款功能過(guò)程中,在支付成功之后需要對(duì)銀行的返回?cái)?shù)據(jù)進(jìn)行簽名驗(yàn)證,因簽名加密方式招商銀行是不提供的,只提供了相應(yīng)的JAVA驗(yàn)證類測(cè)試?yán)?,而本?xiàng)目采用的是PHP架構(gòu)方式,因此需要PHP調(diào)用JAVA的驗(yàn)證類來(lái)測(cè)試簽名是否正確。

2. 目的

本文檔提供一種PHP調(diào)用JAVA類的方式來(lái)進(jìn)行招行的支付成功簽名驗(yàn)證,本方法也可用于其他銀行的JAVA簽名驗(yàn)證方式。

3. 名詞解釋

名詞

解釋說(shuō)明

php-java-bridge

PHP和JAVA的連接橋

4. php-java-bridge安裝和配置介紹

4.1 安裝

Php-java-bridge下載路徑:

最新php-java-bridge版本是php-java-bridge_6.2.1.tar.gz解壓之后采用/usr/local/php/phpize進(jìn)行模塊編譯,提示Cannot find config.m4,版本過(guò)高問(wèn)題,采用了5.4.4.2版本。

編譯及安裝:

tar zxvf php-java-bridge_5.4.4.2.tar.gz

cd php-java-bridge-5.4.4.2/

/usr/local/php/bin/phpize

./configure --disable-servlet --with-java=/usr/local/java/,/usr/local/java/jre --with-php-config=/usr/local/php/bin/php-configmake make install

4.2 配置

vim /usr/local/php/etc/php.ini

[新增]

extension=java.so

[java]

java.java_home="/usr/local/java/"

java.java="/usr/local/java/jre/bin/java"

java.log_file="/var/log/php-java-bridge.log"java.classpath="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/JavaBridge.jar"java.libpath="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/"java.log_level="3"

java.hosts="10.204.79.232:8081"

4.3 啟動(dòng)

重新啟動(dòng)nginx或者apache,輸入?php phpinfo();?可以看到j(luò)ava support

Enabled

java bridge

5.4.4.2

java.log_level

2

手動(dòng)啟動(dòng)javaBridge

java -jar JavaBridge.jar SERVLET:8080

也可以嘗試使用java -jar JavaBridge.jar SERVLET_LOCAL:80814.4 測(cè)試

解壓javaBridge.jar,取出java目錄下相關(guān)的Java.inc文件測(cè)試代碼:

require_once("java/Java.inc");

$string = new Java("java.lang.String", "HelloWorld");echo $string;

$system=new Java("java.lang.System");

echo "Java version=".$system-getProperty("java.version")." ";注意:java/Java.inc記得從javaBridge.jar解壓出來(lái)放在相關(guān)php代碼中注意取值:java_is_true java_is_false java_values5. 注意事項(xiàng)及配置過(guò)程中的問(wèn)題

下述描述在實(shí)際配置測(cè)試過(guò)程中可能會(huì)碰到的問(wèn)題及解決方法:

5.1 問(wèn)題

問(wèn)題1:

configure: error: host_alias is not set. Make sure to run config.guessBack-end configuration failed.

Please install the recommended autoconf, libtool and automake versionsor disable back-end configuration and use the pre-compiled J2EE back-end:

./configure --disable-backend --with-java=JAVA_HOME

configure: error: ./configure.gnu failed for server安裝yum install libtool即可

5.2 注意事項(xiàng)

事項(xiàng)1:

遠(yuǎn)程調(diào)用require_once(‘‘);需要設(shè)置php.ini的allow_url_include參數(shù)為on,同時(shí)編輯 JavaBridge 部署的 Web 應(yīng)用程序目錄中的 web.xml 文件,如下:

取消對(duì)這個(gè)部分的注釋,以便允許對(duì)您的 Java 類進(jìn)行遠(yuǎn)程訪問(wèn)init-param

param-namepromiscuous/param-name

param-valueOn/param-value

/init-param

事項(xiàng)2:

在實(shí)際生產(chǎn)環(huán)境中,考慮到如果每臺(tái)機(jī)器都部署一個(gè)JavaBridge服務(wù)的話,不好維護(hù)。故考慮在單臺(tái)或2臺(tái)左右機(jī)器上部署,其他機(jī)器連接到部署機(jī)器上,可以做分流承壓的功效并且易監(jiān)控。在外網(wǎng)環(huán)境下發(fā)現(xiàn)在調(diào)用部署環(huán)境的內(nèi)外網(wǎng)IP都無(wú)法獲取到指定文檔。實(shí)際require_once本質(zhì)就是調(diào)用部署環(huán)境的java.inc文件,可以考慮把相關(guān)文件放在本地生產(chǎn)環(huán)境上,但在引用Java_require相關(guān)JAR包會(huì)提示連接不到JavaBridge服務(wù),閱讀Java.inc可以查看它會(huì)通過(guò)幾個(gè)地方設(shè)置JAVA_HOST宏變量,第一種是通過(guò)require_once里面的IP或者域名和端口,另外一種是在未設(shè)置JAVA_HOST宏變量的前提下讀取php.ini,如果都沒(méi)有java.hosts參數(shù)則默認(rèn)為127.0.0.1:8080。

排除第一種方式如果采用讀取php.ini的話,因?yàn)楸旧韏ava.hosts參數(shù)不屬于PHP可人為設(shè)置的參數(shù),采用ini_set函數(shù)并不能指定java.hosts的值,所以一種方式是在所有項(xiàng)目的生產(chǎn)環(huán)境的php.ini都指定內(nèi)網(wǎng)IP和端口,如java.hosts=10.204.79.231:8080。還有一種方式,查閱Java.inc可以看到是在未設(shè)置JAVA_HOST變量的前提下是去讀取php.ini,我們可以在require_once(‘java/Java.inc‘)之前新增一行define ("JAVA_HOSTS", $host)。

5.3 參考例子

個(gè)人的實(shí)際測(cè)試代碼如下:

private function _checkSign($strText, $strSign){$ret = false;

try{

$host = ConfigWrapper::load()-services-phpjava-host;if($host != NULL){

define ("JAVA_HOSTS", $host);

}

require_once(‘java/Java.inc‘);

java_require(self::CMBJAR);

$pay = new Java(‘testCdpaySign‘, self::CERFILE);$result = $pay-checkSign((string)$strText, (string)$strSign);if(java_is_true($result) == 1){

$ret = true;

}

}catch (\Exception $e) {

Logger::debug("_checkSign = " . $e-getMessage());}

return $ret;

}

如何用java讀取php的gzencode函數(shù)輸出的壓縮字符

在java中用Inflater.setInput()輸入PHP傳來(lái)的碼文,用Inflater.inflate()解壓出原文.

再用new String(原文, "GBK");轉(zhuǎn)換成java字符串。

java調(diào)用php,php如何獲取參數(shù)

java 里面有一個(gè)URL對(duì)象,比如:

在php里面獲取參數(shù):

echo $_GET['id'];

這樣就獲取了

新聞名稱:java獲取php數(shù)據(jù) php獲取接口的json數(shù)據(jù)
網(wǎng)頁(yè)鏈接:http://muchs.cn/article22/dogigjc.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供定制開(kāi)發(fā)服務(wù)器托管、網(wǎng)站策劃、網(wǎng)站設(shè)計(jì)動(dòng)態(tài)網(wǎng)站、網(wǎng)站設(shè)計(jì)公司

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都定制網(wǎng)站網(wǎng)頁(yè)設(shè)計(jì)