PHP可以向Java发出HTTP Get请求吗?

时间:2013-04-24 08:29:18

标签: java php rest soap curl

我正在尝试在PHP和Java之间进行通信。

这就是我想要做的。 PHP将参数ID传递给Java文件。

Java获取ID并运行一些脚本并将ARRAY返回给PHP。

我已经读了很多,比如PHP / Java Bridge,SOAP,RestCall ......

但我找不到有效的。基本上我不知道如何配置。

我想找一些我能理解的简单例子。而且我不需要使用PHP / Java Bridge。

更容易做的事情。

更新。

* 我曾尝试过对Java文件的Curl调用,在$ result = curl_exec($ curl)上返回Java中的整个CODE。*

我甚至尝试使用Java Servlet,它也只返回Java中的整个CODE。

我想要的是PHP向Java发出GET请求,Java将检测GET请求并获取参数ID。运行一些进程并将ARRAY返回给PHP。

我希望仅在HTTP请求中完成。

但我无法弄清楚它是如何运作的。我甚至尝试过HTTPComponent。

请帮助并在PHP和Java文件中向我展示简单示例。

我甚至关注这个servlet http://brajeshwar.com/2008/handling-http-get-requests-in-java-servlets/  CGI http://www.javaworld.com/jw-01-1997/jw-01-cgiscripts.html?page=3 ,而不仅仅是这些。很多例子。但都没有用。

我错过了什么吗?我会提供更多细节。我使用过XAMPP,每个项目和文件都在我的htdocs中。

所有请求都是这样的“http:// localhost / test /...."

谢谢。


很抱歉,我没有说清楚。

JAVA文件是普通的JAVA文件,例如

public class HelloWorld {
String hw = "Hello World";

public void getHelloWorld() {

            System.out.println("abc");
}

    public static void main(String [] args){
    System.out.println("abc");
    }

}

谢谢。


更新2

这是我的下一个问题。

就像那些Curl,Rest,Cgi调用..它实际上调用了.Java文件吗? 结果返回是.Java的整个源代码。

这是因为编译Java类没有编译器吗? 我把Java文件放在xampp / htdocs中,我用Netbeans编译它。

所以当我从PHP调用时,没有人编译它? 如我错了请纠正我?

所以我应该把.Java文件放在像Tomcat这样的服务器上吗?或者编译它的方法? 我试图放入tomcat webapps,并通过localhost连接到它:8080 / test / test.java

它返回错误404.

如何使用Web浏览器访问.Java fil? 请帮帮我。

谢谢。

解决

使用RESTFul编写Java。 我可以让Curl调用Java。

关注此guide

对于像我这样的Java初学者来说非常清楚。


3 个答案:

答案 0 :(得分:0)

尝试Rest的例子

<?php
$url = 'JAVA_PAGE_URL';
// Open a curl session for making the call 
$curl = curl_init($url);
// Tell curl to use HTTP POST 
curl_setopt($curl, CURLOPT_POST, true);
// Tell curl not to return headers, but do return the response 
curl_setopt($curl, CURLOPT_HEADER, false);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
// Set the POST arguments to pass to the Sugar server 
$parameters = array('id'=>$id);
$json = json_encode($parameters);

$postArgs = 'method=login&input_type=JSON&response_type=JSON&rest_data=' . $json;
curl_setopt($curl, CURLOPT_POSTFIELDS, $postArgs);
// Make the REST call, returning the result 
$response = curl_exec($curl);

// Close the connection 
curl_close($curl);
// Convert the result from JSON format to a PHP array 
$result = json_decode($response);
?>

答案 1 :(得分:0)

我希望这会给你一些更好的想法,以便为RESTFul webservices使用cURL()。

 $curl = curl_init();     
 $url = "http:";
 $fields = 8;
 curl_setopt($curl, CURLOPT_URL, $url);
 curl_setopt($curl, CURLOPT_POST, true);
 curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
 //To use https
 curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
 curl_setopt($curl, CURLOPT_POSTFIELDS, http_build_query($fields));
 curl_setopt($curl, CURLOPT_COOKIEJAR, "cookie.txt");
 curl_setopt($curl, CURLOPT_COOKIEFILE, "cookie.txt");
 $curl_response = curl_exec($curl);
你可以在php中操纵$ curl_reponse。

答案 2 :(得分:0)

我建议你阅读Spring MVC并创建一个REST完整的web服务。调用可执行的java类可能会起作用,但我确实认为这不常见。

以下是可能要调用的控制器类的示例。

@Controller
public class TestController extends BaseController {

    @RequestMapping(value = "/rest/helloworld", method = RequestMethod.GET)
    public @ResponseBody
    String helloWorld(HttpServletRequest req)
            throws Exception {
        return "hello world";
    }
}

这是非常先进的java,尤其是如果你想在Spring中配置它的话。我不能在这篇小帖子中详细解释所有这些。但是,这个网站可能会更多地启发你http://viralpatel.net/blogs/tutorial-spring-3-mvc-introduction-spring-mvc-framework/