Bypass wp_safe_remote_get()?

时间:2017-05-04 作者:nobrandheroes

我有一个PHP(Laravel)应用程序,它通过WooCommerce REST API将数据推送到WooCommerce,除图像外,其他一切都正常。我能把它记下来wp_safe_remote_get()$args[\'reject_unsafe_urls\'].

我已经找到了解决这个问题的方法,但我记不起是在哪里找到的。我似乎记得函数中有一个钩子。关闭此功能的php。不建议这样做,但这是唯一的办法。

有人能帮我吗?或者有人有其他解决方案吗?我只是从同一台服务器上制作的应用程序中推送URL。

来自外部应用程序的代码示例

$this->woocommerce->post(\'products\', [\'product\' => $book_data_array])

哪里$this->woocommerce 是WooCommerce API的一个实例。

$book_data_array 是一个数据数组。有关数据阵列的示例,请参见:\'http://woocommerce.github.io/woocommerce-rest-api-docs/wp-api-v1.html#create-a-product\'

唯一不起作用的是来自同一服务器的图像,这是WordPress的一个问题,WooCommerce开发人员也证实了这一点。WordPress不允许在没有覆盖的情况下从同一来源下载图像。

2 个回复
SO网友:nobrandheroes

这是我找到的补丁。

function turn_off_reject_unsafe_urls($args) {
    $args[\'reject_unsafe_urls\'] = false;

    return $args;
}

add_filter( \'http_request_args\', \'turn_off_reject_unsafe_urls\');

SO网友:cardy

自WP 5.1以来,存档相同结果的一种更安全的方法是使用http\\u request\\u reject\\u unsafe\\u URL过滤:

function performize_turn_off_reject_unsafe_urls($ret,$url) 
{
    //here you can use regex or anything you want to check the url 
    
    if($url===\'https://urltowhitelist\')
        $ret = false;

    return $args;
}

add_filter( \'http_request_reject_unsafe_urls\', \'performize_turn_off_reject_unsafe_urls\',10,2 );
此外,http\\u request\\u args使用2个参数,因此如果要使用http\\u request\\u args,可以通过以下方式执行:

function turn_off_reject_unsafe_urls($args,$url) {
 if($url===\'https://urltowhitelist\')
    $args[\'reject_unsafe_urls\'] = false;

    return $args;
}

add_filter( \'http_request_args\', \'turn_off_reject_unsafe_urls\',10,2);

相关推荐

如果POST太长,WP REST API返回空白响应

我正在开发一个iOS应用程序,它需要使用WP Rest API来获取帖子。一切都很顺利,我使用此端点按ID获取帖子:https://example.com/wp-json/wp/v2/posts/12345 大多数情况下,API都会按预期返回帖子,但如果文章长度超过1300字左右,则会返回空响应。我所说的空是指页面将完全为空,甚至没有404状态码或空数组[]。它确实返回代码200,这意味着一切看起来都很好,但响应为空。从我的疑难解答来看,空白回复的原因似乎是因为帖子的字数太多。我有没有办法更新W