我是PHP的新手,想要编写一段可以调用Web服务的代码片段。 我有正确的java等效代码。
HttpClient client=new HttpClient();
GetMethod method=new GetMethod(URL);
method.addRequestHeader("test1","test1");
String statusCode=client.executeMethod();
if (statusCode != HttpStatus.SC_OK) {
System.err.println("Method failed: " + method.getStatusLine());
}
// Read the response body.
byte[] responseBody = method.getResponseBody();
// Deal with the response.
// Use caution: ensure correct character encoding and is not binary data
System.out.println(new String(responseBody));
答案 0 :(得分:0)
你应该使用一些webservice专用方法,这会更容易。例如,如果您的Web服务是SOAP服务:http://php.net/manual/fr/book.soap.php或XML-RPC:http://www.php.net/manual/en/book.xmlrpc.php
答案 1 :(得分:0)
在php中查看httprequest-send,这可以帮助您开始构建正确的请求。
答案 2 :(得分:0)
有很多不同的方法可以做到。
如果您只是尝试发送一个简单的GET请求,file_get_contents
将正常工作。 (注意:您也可以使用file_get_contents
与stream_context_create
一起执行POST请求,但还有其他方法可以找到更好的方式)
示例:
$response = file_get_contents("http://www.example.com/webservice?foo=bar&baz=1");
另一种方法是使用cURL
。这可能并非在所有系统上都可用(但应该最多)。以下是使用curl的POST请求示例:
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'http://www.example.com/webservice');
curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query(array('foo'=>'bar','baz'=>1)));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_HEADER, 0);
$result = curl_exec($ch);
或者,另一种方法是使用PEAR包HTTP_Request2。这将适用于所有系统,并且可以是一种很好的方法。有关更多信息和示例,请参阅manual page。