Ⅰ php調用java介面,java段要求json格式的請求參數
java端取值方式錯了,用流取.
br = request.getReader();
StringBuffer sb = new StringBuffer("");
String temp;
while ((temp = br.readLine()) != null) {
sb.append(temp);
}
br.close();
System.out.print(sb.toString())
Ⅱ PHP如何調用JAVA類 - PHP進階討論
在php.ini里設置。有java設置的塊。下面是我以前的一個配置做為示例,可以參考一下。[ol][*][*][Java][*]java.class.path = /usr/local/lib/php/php_java.jar:/usr/local/apache/htdocs/java[*]java.home = /usr/local/j2sdk_nb/j2sdk1.4.2/jre[*]java.library = /usr/local/j2sdk_nb/j2sdk1.4.2/jre/lib/i386/libjava.so[*]java.library.path = /usr/local/lib/php/extensions/no-debug-non-zts-20020429[*]extension_dir = /usr/local/lib/php/extensions/no-debug-non-zts-20020429[*]extension = libphp_java.so[*][/ol]Java的兩個安裝包好象都是默認的安裝。PHP要引用的Java Class要存在於java.class.path指定的路徑區域中。記得當時試了大半天才大致搞明白,呵呵。關於調用直接參考PHP官方文檔里的即可。[[i] 本帖最後由 seraph 於 2006-3-27 16:28 編輯 [/i]]
Ⅲ php怎麼調用java介面
這跟java無關,WebService哪種語言開發的都可以,php都是一樣調用
調用方法網上很多例子,就不搬運了:http://www.cnblogs.com/xjnotxj/p/6212143.html
Ⅳ php怎麼調用java的https方式的webservice介面
webservice 發展了好久了,有好多種客戶端部署調用方式 ,流程大致是先創建服務,再調用。
下面的代碼是創建一個簡單的Webservice服務.
server.php
<?php
require_once "lib/nusoap.php";
function webserver() {
return "This is a Webservice Server";
}
$soap = new soap_server;
$soap->register('webserver');
$soap->service($HTTP_RAW_POST_DATA);
?>
上面的代碼就創建了一個Webservice服務程序,接下來創建調用Webservice介面的程序:
<?php
require_once "soap/lib/nusoap.php";
$web_url = "127.0.0.1";
$client = new soapclient($web_url."/server.php");
$param = array();
$ret = $client->call('webserver', $param, $web_url, $web_url);
echo $ret;
?>
基本上流程就是這樣,當然,實際應用上能寫出很復雜的東西,這個你可以找找相關資料學習一下,上面的php調用Webservice程序是通用的,適合於PHP調用其它ASP.NET及Java等各類語言的Webservice介面。一些技術博文里有很詳細的介紹和學習。
Ⅳ PHP調用java的webservice,傳參java接收不到
json吧 不同語言json是最好的途徑
Ⅵ php調用java介面,具體步驟,要可以在win10和linux上使用的,,高額懸賞!
說個思路,採納與否自己看:
用socket進行通訊:
使用現有協議你可以依託,http實現本地訪問的介面,也就是127.0.0.1+http埠就可以訪問。
或者
自己定義數據傳輸規則,依託的是java的純soket介面。
或者
webservice,需要數據封裝,效率還不如http直接調用。
以上方式實現那度都不大,php100%有網路請求或webservice的函數,效率問題你也無須擔心,127.0.0.1通訊,數據連網卡都不會倒,直接轉給別的進程,部署在不同的機器,數據是需要經過網路的。
另外一種方式:
遠程過程調用,這快能否跨語言通訊不想,但rpc是行業標准,如果嚴格遵循標准,理論上可以實現。php有沒有對應的調用函數,不清楚。
我熟悉java,php了解一丁點。
以上所有方式,你寫好後都是通用介面想部署在什麼平台上都行。
Ⅶ 怎麼php發送get請求給Java,然後返回想要的具體參數
curl請求java介面,介面返回值後進行相關操作,給你貼一個curl的代碼
functionihttp_request($url,$post='',$extra=array(),$timeout=60){
$urlset=parse_url($url);
if(empty($urlset['path'])){
$urlset['path']='/';
}
if(!empty($urlset['query'])){
$urlset['query']="?{$urlset['query']}";
}
if(empty($urlset['port'])){
$urlset['port']=$urlset['scheme']=='https'?'443':'80';
}
if(strexists($url,'https://')&&!extension_loaded('openssl')){
if(!extension_loaded("openssl")){
message('請開啟您PHP環境的openssl');
}
}
if(function_exists('curl_init')&&function_exists('curl_exec')){
$ch=curl_init();
if(ver_compare(phpversion(),'5.6')>=0){
curl_setopt($ch,CURLOPT_SAFE_UPLOAD,false);
}
if(!empty($extra['ip'])){
$extra['Host']=$urlset['host'];
$urlset['host']=$extra['ip'];
unset($extra['ip']);
}
curl_setopt($ch,CURLOPT_URL,$urlset['scheme'].'://'.$urlset['host'].($urlset['port']=='80'?'':':'.$urlset['port']).$urlset['path'].$urlset['query']);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
@curl_setopt($ch,CURLOPT_FOLLOWLOCATION,1);
curl_setopt($ch,CURLOPT_HEADER,1);
@curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_0);
if($post){
if(is_array($post)){
$filepost=false;
foreach($postas$name=>$value){
if((is_string($value)&&substr($value,0,1)=='@')||(class_exists('CURLFile')&&$valueinstanceofCURLFile)){
$filepost=true;
break;
}
}
if(!$filepost){
$post=http_build_query($post);
}
}
curl_setopt($ch,CURLOPT_POST,1);
curl_setopt($ch,CURLOPT_POSTFIELDS,$post);
}
if(!empty($GLOBALS['_W']['config']['setting']['proxy'])){
$urls=parse_url($GLOBALS['_W']['config']['setting']['proxy']['host']);
if(!empty($urls['host'])){
curl_setopt($ch,CURLOPT_PROXY,"{$urls['host']}:{$urls['port']}");
$proxytype='CURLPROXY_'.strtoupper($urls['scheme']);
if(!empty($urls['scheme'])&&defined($proxytype)){
curl_setopt($ch,CURLOPT_PROXYTYPE,constant($proxytype));
}else{
curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_HTTP);
curl_setopt($ch,CURLOPT_HTTPPROXYTUNNEL,1);
}
if(!empty($GLOBALS['_W']['config']['setting']['proxy']['auth'])){
curl_setopt($ch,CURLOPT_PROXYUSERPWD,$GLOBALS['_W']['config']['setting']['proxy']['auth']);
}
}
}
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_TIMEOUT,$timeout);
curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false);
curl_setopt($ch,CURLOPT_SSL_VERIFYHOST,0);
curl_setopt($ch,CURLOPT_SSLVERSION,1);
if(defined('CURL_SSLVERSION_TLSv1')){
curl_setopt($ch,CURLOPT_SSLVERSION,CURL_SSLVERSION_TLSv1);
}
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0(WindowsNT6.1;WOW64;rv:9.0.1)Gecko/20100101Firefox/9.0.1');
if(!empty($extra)&&is_array($extra)){
$headers=array();
foreach($extraas$opt=>$value){
if(strexists($opt,'CURLOPT_')){
curl_setopt($ch,constant($opt),$value);
}elseif(is_numeric($opt)){
curl_setopt($ch,$opt,$value);
}else{
$headers[]="{$opt}:{$value}";
}
}
if(!empty($headers)){
curl_setopt($ch,CURLOPT_HTTPHEADER,$headers);
}
}
$data=curl_exec($ch);
$status=curl_getinfo($ch);
$errno=curl_errno($ch);
$error=curl_error($ch);
curl_close($ch);
if($errno||empty($data)){
returnerror(1,$error);
}else{
returnihttp_response_parse($data);
}
}
$method=empty($post)?'GET':'POST';
$fdata="{$method}{$urlset['path']}{$urlset['query']}HTTP/1.1 ";
$fdata.="Host:{$urlset['host']} ";
if(function_exists('gzdecode')){
$fdata.="Accept-Encoding:gzip,deflate ";
}
$fdata.="Connection:close ";
if(!empty($extra)&&is_array($extra)){
foreach($extraas$opt=>$value){
if(!strexists($opt,'CURLOPT_')){
$fdata.="{$opt}:{$value} ";
}
}
}
$body='';
if($post){
if(is_array($post)){
$body=http_build_query($post);
}else{
$body=urlencode($post);
}
$fdata.='Content-Length:'.strlen($body)." {$body}";
}else{
$fdata.=" ";
}
if($urlset['scheme']=='https'){
$fp=fsockopen('ssl://'.$urlset['host'],$urlset['port'],$errno,$error);
}else{
$fp=fsockopen($urlset['host'],$urlset['port'],$errno,$error);
}
stream_set_blocking($fp,true);
stream_set_timeout($fp,$timeout);
if(!$fp){
returnerror(1,$error);
}else{
fwrite($fp,$fdata);
$content='';
while(!feof($fp))
$content.=fgets($fp,512);
fclose($fp);
returnihttp_response_parse($content,true);
}
}
Ⅷ php調用Java webservice,soapCall方法傳遞參數問題
sfsadf