Make "HTTPRequest::post" dynamic
This commit is contained in:
parent
2973ed6448
commit
8793096c16
10 changed files with 25 additions and 33 deletions
|
@ -42,7 +42,6 @@ use Friendica\Model\Contact;
|
||||||
use Friendica\Model\Group;
|
use Friendica\Model\Group;
|
||||||
use Friendica\Model\Notify\Type;
|
use Friendica\Model\Notify\Type;
|
||||||
use Friendica\Model\User;
|
use Friendica\Model\User;
|
||||||
use Friendica\Network\HTTPRequest;
|
|
||||||
use Friendica\Protocol\Activity;
|
use Friendica\Protocol\Activity;
|
||||||
use Friendica\Util\Crypto;
|
use Friendica\Util\Crypto;
|
||||||
use Friendica\Util\DateTimeFormat;
|
use Friendica\Util\DateTimeFormat;
|
||||||
|
@ -224,7 +223,7 @@ function dfrn_confirm_post(App $a, $handsfree = null)
|
||||||
*
|
*
|
||||||
*/
|
*/
|
||||||
|
|
||||||
$res = HTTPRequest::post($dfrn_confirm, $params, [], 120)->getBody();
|
$res = DI::httpRequest()->post($dfrn_confirm, $params, [], 120)->getBody();
|
||||||
|
|
||||||
Logger::log(' Confirm: received data: ' . $res, Logger::DATA);
|
Logger::log(' Confirm: received data: ' . $res, Logger::DATA);
|
||||||
|
|
||||||
|
|
|
@ -507,7 +507,7 @@ function dfrn_poll_content(App $a)
|
||||||
. '&sec=' . $sec
|
. '&sec=' . $sec
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
$s = HTTPRequest::post($r[0]['poll'], [
|
$s = DI::httpRequest()->post($r[0]['poll'], [
|
||||||
'dfrn_id' => $encrypted_id,
|
'dfrn_id' => $encrypted_id,
|
||||||
'type' => 'profile-check',
|
'type' => 'profile-check',
|
||||||
'dfrn_version' => DFRN_PROTOCOL_VERSION,
|
'dfrn_version' => DFRN_PROTOCOL_VERSION,
|
||||||
|
|
|
@ -27,7 +27,6 @@ use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
use Friendica\Model\Contact;
|
use Friendica\Model\Contact;
|
||||||
use Friendica\Model\Profile;
|
use Friendica\Model\Profile;
|
||||||
use Friendica\Network\HTTPRequest;
|
|
||||||
use Friendica\Util\Proxy as ProxyUtils;
|
use Friendica\Util\Proxy as ProxyUtils;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -76,7 +75,7 @@ function match_content(App $a)
|
||||||
$host = DI::baseUrl();
|
$host = DI::baseUrl();
|
||||||
}
|
}
|
||||||
|
|
||||||
$msearch_json = HTTPRequest::post($host . '/msearch', $params)->getBody();
|
$msearch_json = DI::httpRequest()->post($host . '/msearch', $params)->getBody();
|
||||||
|
|
||||||
$msearch = json_decode($msearch_json);
|
$msearch = json_decode($msearch_json);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ use Friendica\App;
|
||||||
use Friendica\Core\Config\IConfig;
|
use Friendica\Core\Config\IConfig;
|
||||||
use Friendica\Core\Logger;
|
use Friendica\Core\Logger;
|
||||||
use Friendica\Core\System;
|
use Friendica\Core\System;
|
||||||
use Friendica\DI;
|
|
||||||
use Friendica\Util\Network;
|
use Friendica\Util\Network;
|
||||||
use Friendica\Util\Profiler;
|
use Friendica\Util\Profiler;
|
||||||
use Psr\Log\LoggerInterface;
|
use Psr\Log\LoggerInterface;
|
||||||
|
@ -228,23 +227,22 @@ class HTTPRequest
|
||||||
* @return CurlResult The content
|
* @return CurlResult The content
|
||||||
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
* @throws \Friendica\Network\HTTPException\InternalServerErrorException
|
||||||
*/
|
*/
|
||||||
public static function post(string $url, $params, array $headers = [], int $timeout = 0, int &$redirects = 0)
|
public function post(string $url, $params, array $headers = [], int $timeout = 0, int &$redirects = 0)
|
||||||
{
|
{
|
||||||
$stamp1 = microtime(true);
|
$stamp1 = microtime(true);
|
||||||
|
|
||||||
if (Network::isUrlBlocked($url)) {
|
if (Network::isUrlBlocked($url)) {
|
||||||
Logger::log('post_url: domain of ' . $url . ' is blocked', Logger::DATA);
|
$this->logger->info('Domain is blocked.'. ['url' => $url]);
|
||||||
return CurlResult::createErrorCurl($url);
|
return CurlResult::createErrorCurl($url);
|
||||||
}
|
}
|
||||||
|
|
||||||
$a = DI::app();
|
|
||||||
$ch = curl_init($url);
|
$ch = curl_init($url);
|
||||||
|
|
||||||
if (($redirects > 8) || (!$ch)) {
|
if (($redirects > 8) || (!$ch)) {
|
||||||
return CurlResult::createErrorCurl($url);
|
return CurlResult::createErrorCurl($url);
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger::log('post_url: start ' . $url, Logger::DATA);
|
$this->logger->debug('Post_url: start.', ['url' => $url]);
|
||||||
|
|
||||||
curl_setopt($ch, CURLOPT_HEADER, true);
|
curl_setopt($ch, CURLOPT_HEADER, true);
|
||||||
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
||||||
|
@ -252,14 +250,14 @@ class HTTPRequest
|
||||||
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
|
curl_setopt($ch, CURLOPT_POSTFIELDS, $params);
|
||||||
curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
|
curl_setopt($ch, CURLOPT_USERAGENT, $a->getUserAgent());
|
||||||
|
|
||||||
if (DI::config()->get('system', 'ipv4_resolve', false)) {
|
if ($this->config->get('system', 'ipv4_resolve', false)) {
|
||||||
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
curl_setopt($ch, CURLOPT_IPRESOLVE, CURL_IPRESOLVE_V4);
|
||||||
}
|
}
|
||||||
|
|
||||||
if (intval($timeout)) {
|
if (intval($timeout)) {
|
||||||
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
curl_setopt($ch, CURLOPT_TIMEOUT, $timeout);
|
||||||
} else {
|
} else {
|
||||||
$curl_time = DI::config()->get('system', 'curl_timeout', 60);
|
$curl_time = $this->config->get('system', 'curl_timeout', 60);
|
||||||
curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time));
|
curl_setopt($ch, CURLOPT_TIMEOUT, intval($curl_time));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -267,20 +265,20 @@ class HTTPRequest
|
||||||
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
|
||||||
}
|
}
|
||||||
|
|
||||||
$check_cert = DI::config()->get('system', 'verifyssl');
|
$check_cert = $this->config->get('system', 'verifyssl');
|
||||||
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (($check_cert) ? true : false));
|
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, (($check_cert) ? true : false));
|
||||||
|
|
||||||
if ($check_cert) {
|
if ($check_cert) {
|
||||||
@curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
|
@curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
$proxy = DI::config()->get('system', 'proxy');
|
$proxy = $this->config->get('system', 'proxy');
|
||||||
|
|
||||||
if (strlen($proxy)) {
|
if (!empty($proxy)) {
|
||||||
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
|
curl_setopt($ch, CURLOPT_HTTPPROXYTUNNEL, 1);
|
||||||
curl_setopt($ch, CURLOPT_PROXY, $proxy);
|
curl_setopt($ch, CURLOPT_PROXY, $proxy);
|
||||||
$proxyuser = DI::config()->get('system', 'proxyuser');
|
$proxyuser = $this->config->get('system', 'proxyuser');
|
||||||
if (strlen($proxyuser)) {
|
if (!empty($proxyuser)) {
|
||||||
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyuser);
|
curl_setopt($ch, CURLOPT_PROXYUSERPWD, $proxyuser);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -296,14 +294,14 @@ class HTTPRequest
|
||||||
|
|
||||||
if ($curlResponse->isRedirectUrl()) {
|
if ($curlResponse->isRedirectUrl()) {
|
||||||
$redirects++;
|
$redirects++;
|
||||||
Logger::log('post_url: redirect ' . $url . ' to ' . $curlResponse->getRedirectUrl());
|
$this->logger->info('Post redirect.', ['url' => $url, 'to' => $curlResponse->getRedirectUrl()]);
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
return self::post($curlResponse->getRedirectUrl(), $params, $headers, $redirects, $timeout);
|
return self::post($curlResponse->getRedirectUrl(), $params, $headers, $redirects, $timeout);
|
||||||
}
|
}
|
||||||
|
|
||||||
curl_close($ch);
|
curl_close($ch);
|
||||||
|
|
||||||
DI::profiler()->saveTimestamp($stamp1, 'network', System::callstack());
|
$this->profiler->saveTimestamp($stamp1, 'network', System::callstack());
|
||||||
|
|
||||||
// Very old versions of Lighttpd don't like the "Expect" header, so we remove it when needed
|
// Very old versions of Lighttpd don't like the "Expect" header, so we remove it when needed
|
||||||
if ($curlResponse->getReturnCode() == 417) {
|
if ($curlResponse->getReturnCode() == 417) {
|
||||||
|
|
|
@ -43,7 +43,6 @@ use Friendica\Model\Post\Category;
|
||||||
use Friendica\Model\Profile;
|
use Friendica\Model\Profile;
|
||||||
use Friendica\Model\Tag;
|
use Friendica\Model\Tag;
|
||||||
use Friendica\Model\User;
|
use Friendica\Model\User;
|
||||||
use Friendica\Network\HTTPRequest;
|
|
||||||
use Friendica\Network\Probe;
|
use Friendica\Network\Probe;
|
||||||
use Friendica\Util\Crypto;
|
use Friendica\Util\Crypto;
|
||||||
use Friendica\Util\DateTimeFormat;
|
use Friendica\Util\DateTimeFormat;
|
||||||
|
@ -1344,7 +1343,7 @@ class DFRN
|
||||||
|
|
||||||
Logger::debug('dfrn_deliver', ['post' => $postvars]);
|
Logger::debug('dfrn_deliver', ['post' => $postvars]);
|
||||||
|
|
||||||
$postResult = HTTPRequest::post($contact['notify'], $postvars);
|
$postResult = DI::httpRequest()->post($contact['notify'], $postvars);
|
||||||
|
|
||||||
$xml = $postResult->getBody();
|
$xml = $postResult->getBody();
|
||||||
|
|
||||||
|
@ -1441,7 +1440,7 @@ class DFRN
|
||||||
|
|
||||||
$content_type = ($public_batch ? "application/magic-envelope+xml" : "application/json");
|
$content_type = ($public_batch ? "application/magic-envelope+xml" : "application/json");
|
||||||
|
|
||||||
$postResult = HTTPRequest::post($dest_url, $envelope, ["Content-Type: " . $content_type]);
|
$postResult = DI::httpRequest()->post($dest_url, $envelope, ["Content-Type: " . $content_type]);
|
||||||
$xml = $postResult->getBody();
|
$xml = $postResult->getBody();
|
||||||
|
|
||||||
$curl_stat = $postResult->getReturnCode();
|
$curl_stat = $postResult->getReturnCode();
|
||||||
|
|
|
@ -3261,7 +3261,7 @@ class Diaspora
|
||||||
if (!intval(DI::config()->get("system", "diaspora_test"))) {
|
if (!intval(DI::config()->get("system", "diaspora_test"))) {
|
||||||
$content_type = (($public_batch) ? "application/magic-envelope+xml" : "application/json");
|
$content_type = (($public_batch) ? "application/magic-envelope+xml" : "application/json");
|
||||||
|
|
||||||
$postResult = HTTPRequest::post($dest_url . "/", $envelope, ["Content-Type: " . $content_type]);
|
$postResult = DI::httpRequest()->post($dest_url . "/", $envelope, ["Content-Type: " . $content_type]);
|
||||||
$return_code = $postResult->getReturnCode();
|
$return_code = $postResult->getReturnCode();
|
||||||
} else {
|
} else {
|
||||||
Logger::log("test_mode");
|
Logger::log("test_mode");
|
||||||
|
|
|
@ -155,7 +155,7 @@ class Salmon
|
||||||
$salmon = XML::fromArray($xmldata, $xml, false, $namespaces);
|
$salmon = XML::fromArray($xmldata, $xml, false, $namespaces);
|
||||||
|
|
||||||
// slap them
|
// slap them
|
||||||
$postResult = HTTPRequest::post($url, $salmon, [
|
$postResult = DI::httpRequest()->post($url, $salmon, [
|
||||||
'Content-type: application/magic-envelope+xml',
|
'Content-type: application/magic-envelope+xml',
|
||||||
'Content-length: ' . strlen($salmon)
|
'Content-length: ' . strlen($salmon)
|
||||||
]);
|
]);
|
||||||
|
@ -180,7 +180,7 @@ class Salmon
|
||||||
$salmon = XML::fromArray($xmldata, $xml, false, $namespaces);
|
$salmon = XML::fromArray($xmldata, $xml, false, $namespaces);
|
||||||
|
|
||||||
// slap them
|
// slap them
|
||||||
$postResult = HTTPRequest::post($url, $salmon, [
|
$postResult = DI::httpRequest()->post($url, $salmon, [
|
||||||
'Content-type: application/magic-envelope+xml',
|
'Content-type: application/magic-envelope+xml',
|
||||||
'Content-length: ' . strlen($salmon)
|
'Content-length: ' . strlen($salmon)
|
||||||
]);
|
]);
|
||||||
|
@ -203,7 +203,7 @@ class Salmon
|
||||||
$salmon = XML::fromArray($xmldata, $xml, false, $namespaces);
|
$salmon = XML::fromArray($xmldata, $xml, false, $namespaces);
|
||||||
|
|
||||||
// slap them
|
// slap them
|
||||||
$postResult = HTTPRequest::post($url, $salmon, [
|
$postResult = DI::httpRequest()->post($url, $salmon, [
|
||||||
'Content-type: application/magic-envelope+xml',
|
'Content-type: application/magic-envelope+xml',
|
||||||
'Content-length: ' . strlen($salmon)]);
|
'Content-length: ' . strlen($salmon)]);
|
||||||
$return_code = $postResult->getReturnCode();
|
$return_code = $postResult->getReturnCode();
|
||||||
|
|
|
@ -26,7 +26,6 @@ use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
use Friendica\Model\APContact;
|
use Friendica\Model\APContact;
|
||||||
use Friendica\Model\User;
|
use Friendica\Model\User;
|
||||||
use Friendica\Network\HTTPRequest;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implements HTTP Signatures per draft-cavage-http-signatures-07.
|
* Implements HTTP Signatures per draft-cavage-http-signatures-07.
|
||||||
|
@ -298,7 +297,7 @@ class HTTPSignature
|
||||||
|
|
||||||
$headers[] = 'Content-Type: application/activity+json';
|
$headers[] = 'Content-Type: application/activity+json';
|
||||||
|
|
||||||
$postResult = HTTPRequest::post($target, $content, $headers);
|
$postResult = DI::httpRequest()->post($target, $content, $headers);
|
||||||
$return_code = $postResult->getReturnCode();
|
$return_code = $postResult->getReturnCode();
|
||||||
|
|
||||||
Logger::log('Transmit to ' . $target . ' returned ' . $return_code, Logger::DEBUG);
|
Logger::log('Transmit to ' . $target . ' returned ' . $return_code, Logger::DEBUG);
|
||||||
|
|
|
@ -28,7 +28,6 @@ use Friendica\DI;
|
||||||
use Friendica\Model\Contact;
|
use Friendica\Model\Contact;
|
||||||
use Friendica\Model\Item;
|
use Friendica\Model\Item;
|
||||||
use Friendica\Model\User;
|
use Friendica\Model\User;
|
||||||
use Friendica\Network\HTTPRequest;
|
|
||||||
use Friendica\Protocol\Activity;
|
use Friendica\Protocol\Activity;
|
||||||
use Friendica\Protocol\ActivityPub;
|
use Friendica\Protocol\ActivityPub;
|
||||||
use Friendica\Protocol\Email;
|
use Friendica\Protocol\Email;
|
||||||
|
@ -405,7 +404,7 @@ class OnePoll
|
||||||
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
$postvars['dfrn_version'] = DFRN_PROTOCOL_VERSION;
|
||||||
$postvars['perm'] = 'rw';
|
$postvars['perm'] = 'rw';
|
||||||
|
|
||||||
return HTTPRequest::post($contact['poll'], $postvars)->getBody();
|
return DI::httpRequest()->post($contact['poll'], $postvars)->getBody();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -756,7 +755,7 @@ class OnePoll
|
||||||
DBA::update('contact', ['hub-verify' => $verify_token], ['id' => $contact['id']]);
|
DBA::update('contact', ['hub-verify' => $verify_token], ['id' => $contact['id']]);
|
||||||
}
|
}
|
||||||
|
|
||||||
$postResult = HTTPRequest::post($url, $params);
|
$postResult = DI::httpRequest()->post($url, $params);
|
||||||
|
|
||||||
Logger::log('subscribe_to_hub: returns: ' . $postResult->getReturnCode(), Logger::DEBUG);
|
Logger::log('subscribe_to_hub: returns: ' . $postResult->getReturnCode(), Logger::DEBUG);
|
||||||
|
|
||||||
|
|
|
@ -25,7 +25,6 @@ use Friendica\Core\Logger;
|
||||||
use Friendica\Database\DBA;
|
use Friendica\Database\DBA;
|
||||||
use Friendica\DI;
|
use Friendica\DI;
|
||||||
use Friendica\Model\PushSubscriber;
|
use Friendica\Model\PushSubscriber;
|
||||||
use Friendica\Network\HTTPRequest;
|
|
||||||
use Friendica\Protocol\OStatus;
|
use Friendica\Protocol\OStatus;
|
||||||
|
|
||||||
class PubSubPublish
|
class PubSubPublish
|
||||||
|
@ -68,7 +67,7 @@ class PubSubPublish
|
||||||
|
|
||||||
Logger::log('POST ' . print_r($headers, true) . "\n" . $params, Logger::DATA);
|
Logger::log('POST ' . print_r($headers, true) . "\n" . $params, Logger::DATA);
|
||||||
|
|
||||||
$postResult = HTTPRequest::post($subscriber['callback_url'], $params, $headers);
|
$postResult = DI::httpRequest()->post($subscriber['callback_url'], $params, $headers);
|
||||||
$ret = $postResult->getReturnCode();
|
$ret = $postResult->getReturnCode();
|
||||||
|
|
||||||
if ($ret >= 200 && $ret <= 299) {
|
if ($ret >= 200 && $ret <= 299) {
|
||||||
|
|
Loading…
Reference in a new issue