带文件有效负载的wp_remote_post

时间:2013-12-09 20:43:22

标签: wordpress

我正在尝试通过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 );

谢谢!

1 个答案:

答案 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;]将包含服务器返回的实际页面内容。