我正在尝试通过wp_remote_post发布文件。不幸的是,传递给此函数的任何文件流或文件路径(前缀为CURL样式@,或者不是)都会被删除并从有效负载中删除。
我在wp-hackers上发现了一个帖子,但是,它非常容易出错并且容易出错。如果没有从头开始编写完整的HTTP有效负载,是否真的无法通过此功能传输文件?
这是一个使用CURL样式的代码块示例(如果感兴趣的话,请在路径前加上@):
$body["attachment[{$i}]"] = "@{$attachment}";
$data = array(
'body' => $body,
'headers' => array(
'Authorization' => 'Basic ' . base64_encode( "user:{$apiKey}" )));
$url = "https://api.someservice.net/{$domain}/endpoint";
$response = wp_remote_post( $url, $data );
谢谢!
答案 0 :(得分:-1)
发布数据应作为数组在正文中发送。传递帖子数据的示例:
$response = wp_remote_post( $url, array(
'method' => 'POST',
'timeout' => 45,
'redirection' => 5,
'httpversion' => '1.0',
'blocking' => true,
'headers' => array(),
'body' => array( 'username' => 'bob', 'password' => '1234xyz' ),
'cookies' => array()
)
);
if ( is_wp_error( $response ) ) {
$error_message = $response->get_error_message();
echo "Something went wrong: $error_message";
} else {
echo 'Response:<pre>';
print_r( $response );
echo '</pre>';
}
在上面的示例中,$ response [&#39; body&#39;]将包含服务器返回的实际页面内容。