вызов веб-сервиса с использованием php - PullRequest
1 голос
/ 21 января 2011

Я новичок в 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));

Ответы [ 3 ]

0 голосов
/ 21 января 2011

Посмотрите на httprequest-send в php, это должно помочь вам правильно построить запрос.

http://php.net/manual/en/function.httprequest-send.php

0 голосов
/ 21 января 2011

Существует множество способов сделать это.

Если вы просто пытаетесь отправить простой запрос GET, file_get_contents будет работать просто отлично.(Примечание: вы также можете выполнять POST-запросы с file_get_contents в сочетании с stream_context_create, но есть и другие способы, которые я нахожу более приятными)

Пример:

$response = file_get_contents("http://www.example.com/webservice?foo=bar&baz=1");

Другой способ заключается виспользуйте cURL.Это может быть доступно не во всех системах (но должно быть в большинстве).Вот пример запроса POST с использованием curl:

$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 .Это будет работать на всех системах и может быть хорошим способом сделать это.Для получения дополнительной информации и примеров см. Справочную страницу .

0 голосов
/ 21 января 2011

Вы должны использовать некоторые специальные методы веб-службы, это будет проще. Например, если ваш веб-сервис является SOAP: http://php.net/manual/fr/book.soap.php, или XML-RPC: http://www.php.net/manual/en/book.xmlrpc.php

...