Tương đương với một cuộc gọi đến drupal_http_Vquest () là gì?


9

Trong Drupal 7 tôi đang sử dụng đoạn mã sau.

$url = 'testdomain/url';
$response = drupal_http_request($url, array('method' => 'POST', 'headers' => array('Content-Type' => 'application/x-www-form-urlencoded; charset=utf-8')));
if ($response->code == "200") {
  $result = $response->data;
}

Mã tương đương tôi nên sử dụng trên Drupal 8 là gì?

Câu trả lời:


13

Cuối cùng, tôi tìm thấy một mã trong https://api.drupal.org/api/drupal/core%21includes%21install.core.inc/8 (1375)

và nó làm việc cho tôi :)

 try {
    $response = \Drupal::httpClient()->get($uri, array('headers' => array('Accept' => 'text/plain')));
    $data = (string) $response->getBody();
    if (empty($data)) {
      return FALSE;
    }
  }
  catch (RequestException $e) {
    return FALSE;
  }

Hy vọng điều này sẽ giúp cho một số


2

Thư viện máy khách HTTP được thêm vào để thay thế drupal_http_Vquest ()

$client = \Drupal::httpClient();
$request = $client->createRequest('GET', $feed->url);
$request->addHeader('If-Modified-Since', gmdate(DATE_RFC1123, $last_fetched));

try {
  $response = $client->get($feed->uri, [
    'headers' => [
      'If-Modified-Since' => gmdate(DATE_RFC1123, $last_fetched),
    ],
  ]);
  // Expected result.
  // getBody() returns an instance of Psr\Http\Message\StreamInterface.
  // @see http://docs.guzzlephp.org/en/latest/psr7.html#body
  $data = $response->getBody();
}
catch (RequestException $e) {
  watchdog_exception('my_module', $e);
}

1
Không hoạt động :( "Trang web đã gặp phải một lỗi không mong muốn / var / www / drupal8 / vegoror /Client.php)
visabhishek


Họ đã sửa nó, nhưng vâng, hồ sơ thay đổi là nơi đầu tiên để kiểm tra :)
wizonesolutions

Mã ở trên sử dụng $ last_fetched var không được xác định ở bất kỳ đâu và cũng ở một nơi sử dụng $ feed-> url và trong onther $ feed-> uri
Marko Blazekovic

1

Điều này làm việc với tôi, gửi một tệp XML bằng \ Drupal :: httpClient () POST

$endpoint  = 'http://example.com/something';
$xml = '<>'; // You're XML here.

// Make the request.
$options = [
  'connect_timeout' => 30,
  'debug' => true,
  'headers' => array(
    'Content-Type' => 'text/xml',
  ),
  'body' => $xml,
  'verify'=>true,
];

try {
  $client = \Drupal::httpClient();
  $request = $client->request('POST',$endpoint,$options);

}
catch (RequestException $e){
  // Log the error.
  watchdog_exception('custom_modulename', $e);
}

$responseStatus = $request->getStatusCode();
$responseXml = $request->getBody()->getContents();

Hi vọng điêu nay co ich.

Thông tin thêm về Guheads tại đây: http://docs.guheadsphp.org/en/latest/index.html

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.