Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [HTTP] Zapytanie HTTP z serwera http
Forum PHP.pl > Forum > PHP
chmiello96
Potrzebuję wykonać zapytanie http z serwera php do innego serwera.
Opiszę swój problem.
Jest strona bez API, ale jeśli udałoby się tam zalogować, mógłbym pobrać potrzebne mi dane.

Muszę wysłać $_POST['login'] i $_POST['password'] - zalogować się, a następnie obrobić uzyskane dane.

Czy jest taka możliwość ?
Byłbym wdzięczny za pomoc, bądź podlinkowanie czegoś smile.gif
wNogachSpisz
Osobiście do prostych zapytań używam czegoś takiego:

  1. <?php
  2.  
  3. /*
  4. http_request('get', 'http://example.com', array('id' => 1), $timeout)
  5. http_request('post', 'http://example.com', array('id' => 1), $timeout)
  6. http_request('get', 'http://example.com')
  7. */
  8. function http_request() {
  9.  
  10. $args = func_get_args();
  11.  
  12. require_once 'HTTP/Request2.php';
  13. $request = new HTTP_Request2;
  14.  
  15. switch ( strtolower( $args[0] )) {
  16.  
  17. case 'get':
  18. $request->setMethod( HTTP_Request2::METHOD_GET );
  19. $request->setUrl( $args[1] );
  20. if ( isset($args[2]) && is_array($args[2]) && ! empty($args[2])) {
  21. $url = $request->getUrl();
  22. $url->setQueryVariables( $args[2] );
  23. }
  24. break;
  25.  
  26. case 'post':
  27. $request->setMethod( HTTP_Request2::METHOD_POST );
  28. $request->setUrl( $args[1] );
  29. if ( isset($args[2]) && is_array($args[2]) && ! empty($args[2])) {
  30. $request->addPostParameter( $args[2] );
  31. }
  32. break;
  33.  
  34. default:
  35. throw new Exception('Invalid request type.');
  36.  
  37. }
  38.  
  39. $timeout = isset($args[3]) ? $args[3] : 30; // 30 sekundowy timeout
  40.  
  41. $request->setConfig(array(
  42. 'connect_timeout' => $timeout,
  43. 'timeout' => $timeout,
  44. ));
  45.  
  46. try {
  47. // this will throw timeout exeption
  48. $response = $request->send();
  49. }
  50. catch ( Exception $e ) {
  51. return false;
  52. };
  53.  
  54. $response_body = $response->getBody();
  55. return $response_body;
  56. }
  57.  
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.