我的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);