wordpress - 带有文件有效负载的 wp_remote_post

标签 wordpress

我正在尝试通过 wp_remote_post 发布文件.不幸的是,传递给此函数的任何文件流或文件路径(以 CURL 样式 @ 开头,或不)都只是简单地从有效负载中删除和删除。

我在 wp-hackers 上找到了一个帖子,但是,它非常 hack-ish 并且容易出错。如果不从头开始编写完整的 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 );

谢谢!

最佳答案

发布数据应作为数组在正文中发送。传递帖子数据的示例:

$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['body'] 将包含服务器返回的实际页面内容。

关于wordpress - 带有文件有效负载的 wp_remote_post,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20480376/

相关文章:

php - Page.php 不显示 wordpress 中的更改

wordpress - 如何在 Apache 中为 Wordpress Bitnami Amazon-Ligthsail 实例禁用 TLS 1.0 和 1.1 以仅启用 TLS 1.2 和 TLS 1.3?

javascript - 当我将监听器放入 Wordpress 页面时,为什么它不起作用?

php - WordPress:如何计算 wp_list_pages

javascript - 为 WordPress 添加光滑的 slider

wordpress - Woocommerce 显示默认变化价格

javascript - 重复下拉 Javascript 对第二个下拉菜单元素的影响

css - 在 IE/Firefox Mobile 和 Firefox Desktop 中显示不同颜色的文本 (!)

WordPress:自定义帖子类型的功能

html - DFP 多尺寸第三方广告素材