12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697 |
- <?php
- /**
- * http请求函数
- *
- *
- *
- */
- defined('InShopNC') or exit('Access Invalid!');
- function http_request($url, $params = array(), $method = 'GET', $multi = false, $extheaders = array())
- {
- if (!function_exists('curl_init')) {
- return NULL;
- }
- $method = strtoupper($method);
- $ci = curl_init();
- curl_setopt($ci, CURLOPT_USERAGENT, 'PHP-SDK OAuth2.0');
- curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 3);
- curl_setopt($ci, CURLOPT_TIMEOUT, 3);
- curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ci, CURLOPT_HEADER, false);
- $headers = (array) $extheaders;
- switch ($method)
- {
- case 'POST':
- curl_setopt($ci, CURLOPT_POST, TRUE);
- if (!empty($params))
- {
- if ($multi)
- {
- foreach ($multi as $key => $file) {
- $params[$key] = '@' . $file;
- }
- curl_setopt($ci, CURLOPT_POSTFIELDS, $params);
- $headers[] = 'Expect: ';
- }
- else
- {
- curl_setopt($ci, CURLOPT_POSTFIELDS, http_build_query($params));
- }
- }
- break;
- case 'DELETE':
- case 'GET':
- $method == 'DELETE' && curl_setopt($ci, CURLOPT_CUSTOMREQUEST, 'DELETE');
- if (!empty($params)) {
- $url = $url . (strpos($url, '?') ? '&' : '?')
- . (is_array($params) ? http_build_query($params) : $params);
- }
- echo $url;
- break;
- }
- curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE);
- curl_setopt($ci, CURLOPT_URL, $url);
- if ($headers) {
- curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
- }
- $response = curl_exec($ci);
- curl_close($ci);
- return $response;
- }
- function http_post_data($url, $body, $headers = array())
- {
- if (!function_exists('curl_init')) {
- return false;
- }
- $ci = curl_init();
- curl_setopt($ci, CURLOPT_USERAGENT, 'PHP-SDK OAuth2.0');
- curl_setopt($ci, CURLOPT_CONNECTTIMEOUT, 3);
- curl_setopt($ci, CURLOPT_TIMEOUT, 3);
- curl_setopt($ci, CURLOPT_RETURNTRANSFER, true);
- curl_setopt($ci, CURLOPT_SSL_VERIFYPEER, false);
- curl_setopt($ci, CURLOPT_SSL_VERIFYHOST, false);
- curl_setopt($ci, CURLOPT_HEADER, false);
- curl_setopt($ci, CURLOPT_POSTFIELDS, $body);
- curl_setopt($ci, CURLINFO_HEADER_OUT, TRUE);
- curl_setopt($ci, CURLOPT_URL, $url);
- if (!empty($headers)) {
- $val = implode(',',$headers);
- Log::record("post oms header={$val}",Log::DEBUG);
- curl_setopt($ci, CURLOPT_HTTPHEADER, $headers);
- }
- $response = curl_exec($ci);
- curl_close($ci);
- return $response;
- }
|