Wooccommerce产品api v3不接受9191端口的url映像.仅8080



我的POST请求(JSON用于在WOOCOMMERCE API V3中创建产品(对图像失败。

我通过两个不同的端口在互联网上看到了相同的图像。https也失败

----------------失败:不适用于9191或其他端口------------------------------

{
"src": "http://190.64.76.10:9191/img/logo.png"
}

错误

{
"code": "woocommerce_product_image_upload_error",
"message": "Error getting remote image http://190.64.76.10:9191/img/logo.png. A valid URL has not been provided",
"data": {
"status": 400
}

}

----------------适用于8080端口------------------------------

{
"src": "http://190.64.76.10:8080/img/logo.png"
}

有什么想法吗

在内部,URL通过调用wp_http_validate_url进行验证。在其他规则中,它检查端口是否是80443或8080:之一

$port = $parsed_url['port'];
if ( 80 === $port || 443 === $port || 8080 === $port ) {
return $url;
}

你可以在这里看到GitHub上代码的相关部分。还有一个问题,有些人也有同样的问题,你可以在这里找到。

所以,最重要的是,默认情况下,您不能使用除80、443或8080之外的任何其他端口。除了在WordPress中禁用URL验证之外,没有其他方法可以改变这一点,这可能不是一个好主意。

但如果你真的需要它,你可以在WordPress安装的插件或主题中添加以下代码:

add_filter('http_request_args', function ($args, $url) {
$args['reject_unsafe_urls'] = false;
return $args;
}, 50, 2);

相关内容

最新更新