Heim >Backend-Entwicklung >PHP-Tutorial >Beispiel einer von PHP implementierten HTTP-Anfragekapselung

Beispiel einer von PHP implementierten HTTP-Anfragekapselung

高洛峰
高洛峰Original
2017-03-21 15:56:122652Durchsuche

Das Beispiel in diesem Artikel beschreibt die HTTP-Anforderungskapselung von PHP. Teilen Sie es als Referenz mit allen. Die Details lauten wie folgt:

/**
* 发送HTTP请求方法,目前只支持CURL发送请求
* @param string $url  请求URL
* @param array $params 请求参数
* @param string $method 请求方法GET/POST
* @return array $data  响应数据
*/
protected function http($url, $params, $method = 'GET', $header = array(), $multi = false) {
    $opts = array(CURLOPT_TIMEOUT => 30, CURLOPT_RETURNTRANSFER => 1, CURLOPT_SSL_VERIFYPEER => false, CURLOPT_SSL_VERIFYHOST => false, CURLOPT_HTTPHEADER => $header);
    /* 根据请求类型设置特定参数 */
    switch(strtoupper($method)) {
      case 'GET' :
        $opts[CURLOPT_URL] = $url . '&' . http_build_query($params);
        dump($opts[CURLOPT_URL]);
        break;
      case 'POST' :
        //判断是否传输文件
        $params = $multi ? $params : http_build_query($params);
        $opts[CURLOPT_URL] = $url;
        dump($opts[CURLOPT_URL]);
        $opts[CURLOPT_POST] = 1;
        $opts[CURLOPT_POSTFIELDS] = $params;
        break;
      default :
        throw new Exception('不支持的请求方式!');
    }
    /* 初始化并执行curl请求 */
    $ch = curl_init();
    curl_setopt_array($ch, $opts);
    $data = curl_exec($ch);
    $error = curl_error($ch);
    curl_close($ch);
    if ($error)
      throw new Exception('请求发生错误:' . $error);
    return $data;
}

Ich hoffe, dieser Artikel wird für alle hilfreich sein, die sich mit PHP-Programmierung befassen.

Weitere Artikel zu von PHP implementierten Beispielen für die Kapselung von HTTP-Anfragen finden Sie auf der chinesischen PHP-Website!

Verwandte Artikel:

So erhalten Sie die Header-Informationen einer HTTP-Anfrage in PHP

Schritte zum Implementieren des Abrufens der Header-Informationen von http-Anfrage in PHP

php-HTTP-Anfrageklasse, unterstützt GET, POST, Multipart/form-data

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn